1、字符流
1.字符流写数据
1.void write(int c)写一个字符
2.void write(char[] cbuf)写入一个字符数组
3.void write(char[] cbuf, int off, int len)写入字符数组的一部分
4.void write(String str)写一个字符串
5.void write(String str, int off, int len)写一个字符串的一部分
2.字符流读数据
1.int read()一次读一个字符数据
2.int read(char[]l cbuf)一次读一 个字符数组数据
package demo01;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class demo01InputStream {
public static void main(String[] args) throws IOException {
//1.创建FileInputStream对象,构造方法中绑定要读取的数据
FileInputStream fis= new FileInputStream("a.txt");
//2.使用read方法读取问
/*int len=fis.read();
System.out.println(len);
len=fis.read();
System.out.println(len);
len=fis.read();
System.out.println(len);
len=fis.read();
System.out.println(len);
len=fis.read();
System.out.println(len);
*/
int len=0;
while((len=fis.read())!=-1) {
System.out.println((char)len);
}
//释放资源
fis.close();
}
}
2 字节输出流:
2.1 OutputStream类的常用方法
write (int b); 将指定的字节写入此输出流。
write(byte[] byte); 将 b.length 个字节从指定的 byte 数组写入此输出流。
write(byte[] byte, int off, int len); 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
flush(); 用于清空缓存里的数据,并通知底层去进行实际的写操作。(强制把缓存区里面的数据写入到文件)
close();关闭当前流,释放与该流相关的资源。
2.2 OuputStream类的子类:文件输出类FileOutputStream
提供了文件的基本写入能力,继承自 OuputStream类
注意:
如果进行写操作的文件不存在,则自动创建该文件。
如果文件所在的路径也不存在则报错。
package com.hg.day21.demo02;
import java.io.FileWriter;
import java.io.IOException;
public class Demo02Wreiter {
public static void main(String[] args) throws IOException {
FileWriter fw= new FileWriter("D:\\代码\\java\\com\\hg\\day21\\demo01\\a.txt");
fw.write("a");//需要被写入的字符还在缓冲区
fw.flush();
fw.write(98);
fw.flush();
fw.write(99);
fw.flush();
fw.write("d");
fw.flush();
fw.write("e");
fw.flush();
fw.close();//如果只写入一个字节,那就可以直接用close,但是实际生活中可能或写多次数据
}
}