字节流:适合复制文件等,不适合读写文本文件
字符流:适合读写文本文件内容
FileReader:文件字符输入流
*作用:是以内存为基准,可以把文件中的数据以字符的形式读取到内存中去
构造器 说明 public FileReader(File file) 创建字符输入流管道与源文件接通 public FileReader(String pathname) 创建字符输入流管道与源文件接通
方法名称 说明 public int read() 每次读取一个字符返回,如果发现没有数据可读会返回-1. public int read(char[]buffer) 每次用一个字符数组去读取数据,返回字符数组读取了多少个字符,如果发现没有数据可读会返回-1.
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.Reader;public class FileReader1 {public static void main(String[] args) {//1、创建一个文件字符输入流,每次读取一个字符try ( Reader rd= new FileReader("D:\\code\\weilai1\\src\\itheima1.txt");){//读取文本文件中的内容了// int c;//记住每次读取的字符编号// while((c= rd.read())!=-1){// System.out.print((char) c);// }//每次读取一个字符的形式,性能比较差//每次读取多个字符,性能比较好char []chars=new char[3];int len;while((len= rd.read(chars))!=-1){String str=new String(chars);System.out.print(str);}} catch (Exception e) {e.printStackTrace();}}
}
Filewriter(文件字符输出流)
作用:以内存为基准,把内存中的数据以字符的形式写出到文件中去。
构造器 说明 public FileWriter(File file) 创建字节输出流管道与源文件对象接通 public FileWriter(String filepath) 创建字节输出流管道与源文件路径接通 public Filewriter(File file,boolean append) 创建字节输出流管道与源文件对象接通,可追加数据 public Filewriter(String filepath,boolean append) 创建字节输出流管道与源文件路径接通,可追加数据
方法名称 说明 void write(int c) 写一个字符 void write(String str) 写一个字符串 void write(String str, int off, int len) 写一个字符串的一部分 void write(char[ ]cbuf) 写入一个字符数组 void write(char[ ] cbuf, int off, int len) 写入字符数组的一部分
import java.io.FileWriter;
import java.io.IOException;public class FileWriter1 {public static void main(String[] args) {//覆盖管道try ( FileWriter fw=new FileWriter("D:\\code\\weilai1\\src\\itheima1.txt",true);){// void write(int c)fw.write('b');fw.write('类');fw.write(97);fw.write("\r\n");//换行//void write(String str)fw.write("你好,中国");fw.write("\r\n");// void write(String str, int off, int len)fw.write("你好,中国",0,2);fw.write("\r\n");// void write(char[ ]cbuf)char[]chars={'e','我','艾','9','a'};fw.write(chars);fw.write("\r\n");// void write(char[ ] cbuf, int off ,int len)fw.write(chars,0,3);fw.write("\r\n");} catch (IOException e) {e.printStackTrace();}}
}
字符输出流使用时的注意事项
字符输出流输出数据后,必须刷新流或者关闭流,写出的数据才能生效。
fw.flush;刷新流,刷新之后,流还可以继续使用
fw.close;关闭流,包含了刷新流