1、File类常见方法:

创建:

boolean createNewFile():在指定位置创建文件

如果该文件已经存在,则不创建,返回false,和输出流不一样,输出流对象一建立就创立文件,而且文件已经存在会发生覆盖

boolean mkdir():创建文件夹,只能创建一级文件夹

boolean mkdirs():创建多级文件夹

renameTo():

删除:

boolean delete():删除失败,返回false

void deleteOnExit():在程序退出时删除指定文件

判断:

boolean exists():判断文件是否存在

boolean isFile():

boolean isDirectory():

在判断文件对象是否是文件或者目录时,必须要先判断该文件对象封装的内容是否存在,通过exists()方法进行判断

isHidden():是否为隐藏文件

isAbsolute():是否为绝对路径

获取信息:

getName():

String getPath():

getParent():返回的是绝对路径中的文件父目录,如果获取的是相对路径,则返回空,如果相对路径中有上一层目录,那么该目录就是返回结果

String getAbsolutePath():

lastModified():

length():返回文件长度

Static File[] listRoots():返回系统中所有的盘符

String [] list():返回该路径下所有的文件和目录——FilenameFilter()

File[] listFiles():

Properties类

存取配置文件

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Properties props=new Properties();
FileInputStream fis=new FileInputStream("props.txt");
props.load(fis); Set<String> keys=props.stringPropertyNames();
for(String key:keys){
String value=props.getProperty(key);
System.out.println(key+":"+value);
} FileOutputStream fos=new FileOutputStream("props.txt");
props.setProperty("name", "hello");
props.store(fos, null);
}

打印流

字节打印流:
PrintStream

构造函数可以接收的参数类型

1.file对象

2.字符串路径

3.字节输出流:OutputStream

字符打印流
PrintWriter

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in)); PrintWriter pw=new PrintWriter(System.out,true);
String line= br.readLine();
pw.println(line.toUpperCase());
pw.flush(); pw.close();
br.close();
/*while(!"over".equals(line)){
pw.print(line.toUpperCase());
line=br.readLine();
}*/
}

合并流
SequenceInputStream

对象序列化(被操作的对象需要实现Serializable接口)

ObjectInputStream,ObjectOutputStream

        FileOutputStream fos = new FileOutputStream("person.txt");
ObjectOutputStream oos=new ObjectOutputStream(fos);
Person person=new Person("lvjy",30);
oos.writeObject(person);
oos.close(); FileInputStream fis = new FileInputStream("person.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
Person p=(Person) ois.readObject();
System.out.println(p);
ois.close();

自定义版本号:public staitc final long serialVersionUID=42L

新的类还能操作曾经被序列化的对象

只能把堆里面的数据序列化,但是不能把其他区域中的数据序列化(static变量不能序列化)

对非静态的成员也不想序列化的话,可以在序列化对象相关的成员变量加上trainsient关键字

管道流

PipedInputStream,PipedOutputStream

package com.travelsky.io;

import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream; public class PipedStreamDemo { @SuppressWarnings("resource")
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
PipedInputStream in=new PipedInputStream();
PipedOutputStream out = new PipedOutputStream();
in.connect(out); PipedOut po = new PipedOut(out);
PipedIn pi = new PipedIn(in); new Thread(po).start();
new Thread(pi).start();
} }
class PipedOut implements Runnable{
private PipedOutputStream pos;
public PipedOut(PipedOutputStream pos) {
super();
this.pos = pos;
}
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("piped out sleep");
try {
Thread.sleep(5000);
pos.write("hello,world".getBytes());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
class PipedIn implements Runnable{
private PipedInputStream pis; public PipedIn(PipedInputStream pis) {
super();
this.pis = pis;
} @Override
public void run() {
// TODO Auto-generated method stub
byte[] buf =new byte[1024];
try {
System.out.println("piped in wait");
int len=pis.read(buf);
String content = new String(buf,0,len);
System.out.println(content);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

RandomAccessFile

该类不算是IO体系中的子类,而是直接继承自Object

但是它是IO包中成员,因为它具备读和写功能

内部封装了一个数组,而且通过指针对数组的元素进行操作。

可以通过getFilePointer获取指针位置,同时可以通过seek改变指针的位置

通过构造函数可以看出,该类只能操作文件

RandomAccessFile(String name,String mode)  

mode:r,rw,rws,rwd

write方法只写出int类型的最低8位

操作基本数据类型的流对象:DataStream

DataInputStream,DatOutputStream

readInt(),readBoolean,readDouble()

writeInt(),writeBoolean,writeDouble()

writeUTF(),readUTF():加强版的UTF-8

操作字节数组

ByteArrayInputStream:

在构造的时候,需要接收数据源,而且数据源是一个字节数组

ByteArrayOutputStream

在构造的时候,不用定义数据目的,因为该对象中已经内部封装了一个可变长度的字节数组。这就是数据目的地。因为这两个流对象都操作的是数组,并没有使用系统资源,所以不用进行close关闭

操作字符数组

CharArrayReader与CharArrayWriter

操作字符串

StringReader,StringWriter

Tomcat默认的解码方式为ISO8859-1

get方式提交:必须手工转换字符编码

post方式提交:可以通过setCharacterEncoding()函数来设定编码方式

UTF-8修改版:

单字节:0xxxxxxx

两字节:110xxxxx 10xxxxxx

三字节:1110xxxx 10xxxxxx 10xxxxxx

File类相关操作的更多相关文章

  1. C# File类的操作

    原文:C# File类的操作 File类,是一个静态类,主要是来提供一些函数库用的.静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和打开一个文件.File类方法的参 ...

  2. .Net File类的操作

    //File类的常用操作方法 //File类的常用操作方法 //File.Exists //检测是否存在该文件 Exists //File.Create //创建一个文件 Create //File. ...

  3. file类简单操作

    file类可表示文件或文件夹 import java.io.File; import java.io.FilenameFilter; import java.io.IOException; impor ...

  4. 大数据学习——scala类相关操作

    1 类的定义 package com /** * Created by Administrator on 2019/6/3. */ //类并不用声明为public. class Person { // ...

  5. Java 输入/输出——File类

    File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成.值得指出的是,不管是文件还是目录都是使用File来操作的,File能新建 ...

  6. Java IO学习--File类

    一.File类 File类具备一定的误导性,可能容易认为它指代的是文件,实际并非如此,它既能代表一个特定文件的名称,又能表示一个目录下一组文件的名称.简而言之,File类是文件或者目录路径名的抽象表示 ...

  7. IO编程之File类

    File类是java.io包下代表与平台无关的文件及目录,程序操作文件和目录都可以通过File类来完成.值得指出的是,不管是文件还是目录都可以通过File类来操作.File能新建.删除.重命名文件和目 ...

  8. File类和RandomAccessFile类

    目录 File类     File类常用操作     (1)创建文件     (2)删除文件     (3)创建文件夹     (4)列出指定目录全部文件     (5)删除目录 RandomAcce ...

  9. Java IO详解(一)------File 类

    File 类:文件和目录路径名的抽象表示. 注意:File 类只能操作文件的属性,文件的内容是不能操作的. 1.File 类的字段 我们知道,各个平台之间的路径分隔符是不一样的. ①.对于UNIX平台 ...

随机推荐

  1. 【题解】Luogu P2057 [SHOI2007]善意的投票

    原题传送门 我们一眼就能看出这是一道最小割的题 我们设不睡觉这种状态为S,睡觉这种状态为T 对于每个人,如果不想睡觉,就从S向这个人连流量为1的边,否则,就从这个人向T连流量为1的边 对于每一对朋友, ...

  2. 经典算法问题的java实现 (二)

    原文地址: http://liuqing-2010-07.iteye.com/blog/1403190   1.数值转换(System Conversion) 1.1 r进制数   数N的r进制可以表 ...

  3. 绘制COCO数据集结果

    import os import time import datetime import mmcv import cv2 as cv import json import numpy as np im ...

  4. flask --- 02. 路由, 初始化配置,蓝图

    一.Flask 路由 1.添加路由的方式 ① ② 实例: ① @app.route("/my_de") def detail() ② def detail() app.add_ur ...

  5. linux驱动编写(pwm驱动)【转】

    本文转载自:https://blog.csdn.net/feixiaoxing/article/details/79889240 pwm方波可以用来控制很多的设备,比如它可以被用来控制电机.简单来说, ...

  6. 再谈git和github-深入理解

    git中的 objects 和 refs 是什么? 目录objects是仓库的 "对象库" , 是包含 代码, 提交, 日志, 信息, 索引等信息的关键所在 refs是一些 sha ...

  7. ComponentOne 产品经理:为什么要从C1Report迁移到FlexReport

    概述 如果你正在使用ComponentOne Enterprise 的Reports for WinForm 报表控件(C1Report),你一定会喜欢更为强大的FlexReport! FlexRep ...

  8. ABAP search help (搜索帮助) 几种种方法

    ABAP search help (搜索帮助) 几种种方法    域范围  ABAP 的搜索帮助有很多种方法,掌握下面的几种基本差不多了 *&------------------------- ...

  9. [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world

    [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world 原文链接:http://www.cnblogs.com/blog5277/ ...

  10. micro-template改造

    (function ($) { $.fn.razor = function (data) { var render=$(this).data('razor'); if (!render) { var ...