Tips:File是java.io包下的类可以完成删除、重命名、新建文件和文件夹。
IO流分类:
- 输入流和输出流
- 输入流:只能从中读取数据,而不能向其写入数据;基本上是从磁盘文件到系统内存。
- InputStream 和 reader;前者是字节流,后者是字符流;属于抽象基类
- 输出流:只能向其写入数据,而不能从中读取数据;基本上是从系统内存到磁盘文件。
- OutputStream和Writer;前者是字节流,后者是字符流;属于抽象基类
- 字节流和字符流
- 字节流:字节流操作的数据单元是8位的字节;
- InputStream和OutputStream;
- 字符流:字符流操作的数据单元是16位的字符;
常用输入输出类
方法 |
介绍 |
FileInputStream(File file) |
通过File对象关联一个文件 |
FileInputStream(String name) |
通过String直接填写文件的地址 |
int read() |
读取一个字节的数据 |
int read(byte[] b) |
读取最多 b.length个字节的数据为字节数组。 |
public static void main(String[] args) throws Exception {
InputStream is = new FileInputStream(new File("./abc/aa.txt"));
byte[] b = new byte[1024];
int size = 0;
while((size=is.read(b))>0){
System.out.println(new String(b,0,size));
}
//最后不要忘记关闭流
is.close();
}
- 父类 java.io.Reader、java.io.InputStreamReader
方法 |
介绍 |
FileReader(String fileName) |
根据filename直接定位到文件 |
FileReader(File file) |
根据File对象定位到文件 |
int read() |
读取一个字符 |
int read(char[] cbuf, int offset, int length) |
cbuf 存放读取数据的数组。offset offset - 开始存储字符的偏移量。length 读取长度 |
public static void main(String[] args) throws Exception {
Reader rd = new FileReader(new File("./abc/aa.txt"));
char[] ch = new char[1024];
int size = 0;
while((size=rd.read(ch))>0){
System.out.println(new String(ch,0,size));
}
//最后不要忘记关闭流
rd.close();
}
方法 |
介绍 |
FileOutputStream(File file , boolean append) |
通过file 定位到文件。append :true 追加,false 覆盖 |
FileOutputStream(String name , boolean append) |
同上 |
void write(byte[] b, int off, int len) |
b :将b数组的内容写进文件。off :数据中的起始偏移量。len :要写入的字节数。 |
void write(int b) |
将指定字节写进文件 |
void flush() |
刷新此输出流并且将内容写进磁盘 |
public static void main(String[] args) throws Exception {
OutputStream os = new FileOutputStream(new File("./abc/aa.txt"));
byte[] b = {55,56,57,58};
os.write(b);
os.close();
}
- 父类java.io.Reader
创建BufferedReader对象的方法
InputStreamReader r = new FileReader("/");
BufferedReader buf = new BufferedReader(r);
方法 |
介绍 |
String readLine() |
读一行数据 |
- 父类java.io.Writer
创建BufferedWriter对象的方法
OutputStreamWriter w = new FileWriter("/");
BufferedWriter buf = new BufferedWriter(w);
方法 |
介绍 |
void newLine() |
写一行 行分隔符 |
void write(char[] cbuf, int off, int len) |
cbuf :存储数据的数组。off :开始读取字符的偏移量。len :要写入的 len数 |