字符流
字符流的父类(抽象类)
reader
字符输入流public int read(){}
public int read(char[] c ){}
public int read(char[] b, int off, int len ){}
writer
字符输出流public void write( int n ){}
public void write( String str){}
public void write(char[] c ){}
FileReader 文件读取
public int read(char[] c )
//从流中读取多个字符,将读取到内容存到c数组,返回实际读取的字符数;如果达到文件的尾部,则返回 -1。
/**
* 使用FileReader读取文件
* */
public class Demo8 {
public static void main(String[] args) throws Exception {
FileReader fr = new FileReader("e:\\hello.txt"); //中英文都可以读
//读取
//2.1单个字符读取去
// int data = 0;
// while ((data = fr.read())!= -1){ //读取一个字符
// System.out.println((char)data);
// }
//2.2
char[] buf = new char[1024];
int count = 0 ;
while ((count = fr.read(buf))!= -1){
System.out.println(new String(buf,0,count));
}
//3关闭
fr.close();
System.out.println("执行完毕");
}
}
FileWriter 文件写入
public void write(String str ){}
//一次写多个字符,将b数组中所有字符,写入输出流。
/**
* 使用FileWriter写入文件
* */
public class Demo9 {
public static void main(String[] args) throws Exception {
//1创建FileWrite对象
FileWriter fw = new FileWriter("e:\\write.txt");
//写入
for (int i = 0; i < 10; i++) {
fw.write("java是世界上最好的语言\r\n");
fw.flush();//刷新
}
//关闭
fw.close();
System.out.println("执行完毕");
}
}
字符流复制文件
字符流只能复制文本文件,字节流可以复制任意文件
/**
* 使用FileReader和FileWriter复制文本文件,不能复制图片或二进制文件
* */
public class Demo10 {
public static void main(String[] args) throws Exception{
//1创建FileReader FileWriter
FileReader fr = new FileReader("e:\\write.txt");
FileWriter fw = new FileWriter("e:\\write2.txt");
//2读写
int data = 0;
while ((data = fr.read())!=-1){
fw.write(data);
fw.flush();
}
//3关闭
fr.close();
fw.close();
System.out.println("复制完毕");
}
}