字符流
字符流
字符流的父类(抽象类):
Reader:字符输入流
1.public int read() {}
2.public int read (char[] c) {}
3.public int read(char[] b, int off, int len) {}
Writer:字符输出流
1.public void write(int n) {}
2.public void write(String str) {}
3.public void write(char[] с) {}
文件字符流
FileReader:
public int read(char[] c) //从流中读取多个字符,将读到内容存入c数组, 返回实际读到的字符数;如果达到文件的尾部,则返回-1
eg :
public class Demo02 {
public static void main(String[] args) throws Exception {
//1.创建FileReader 文件字符流
FileReader fr = new FileReader("g:\\hello.txt");
//2.读取
//2.1单个字符流
//int data = 0;
//while((data = fr.read())!=-1){//读取一个字符
// System.out.print((char)data);
//}
//2.2
char[] buf = new char[2];
int count = 0;
while((count = fr.read(buf))!=-1){
System.out.println(new String(buf,0,count));
}
//3.关闭
fr.close();
}
}
FileWriter:
public void write(String str) //一次写多个字符,将b数组中所有字符,写入输出流
eg :
public class Demo03 {
public static void main(String[] args) throws IOException {
//1.创建FileWriter对象
FileWriter fw = new FileWriter("g:\\write.txt");
//2.写入
for (int i = 0; i < 10; i++) {
fw.write("Java是世界上最好的语言\r\n");// \r\n 换行
fw.flush();
}
//3.关闭
fw.close();
System.out.println("执行完毕");
}
}
public class Demo04 {
public static void main(String[] args) throws Exception {
//1.创建FileReader FileWriter
FileReader fr = new FileReader("g:\\write.txt");
FileWriter fw = new FileWriter("g:\\write2.txt");
//2.读写
int data = 0;
while((data = fr.read())!=-1){
fw.write(data);
fw.flush();
}
//3.关闭
fr.close();
fw.close();
System.out.println("复制完毕");
}
}
字符缓冲流
缓冲流:BufferedReader/BufferedWriter
高效读写
支持输入换行符
可一次写一行、读一行
eg :
public class Demo05 {
public static void main(String[] args) throws Exception {
//1.创建缓冲流
FileReader fr = new FileReader("g:\\write.txt");
BufferedReader br = new BufferedReader(fr);
//2.读取
//2.1第一种方式
/*char[] buf = new char[1024];
int count = 0;
while((count = br.read(buf))!=-1){
System.out.println(new String(buf,0,count));
}*/
//2.2第二种方式。一行一行的读取
String line = null;
while((line=br.readLine())!=null){
System.out.println(line);
}
//3.关闭
br.close();
}
}
public class Demo06 {
public static void main(String[] args) throws Exception {
//1.创建BufferedWriter对象
FileWriter fw = new FileWriter("g:\\buffer1.txt");
BufferedWriter bw = new BufferedWriter(fw);
//2.写入
for (int i = 0; i < 10; i++) {
bw.write("好好学习,天天向上");
bw.newLine();//写入一个换行符windows \r\n linux \n
bw.flush();
}
//3.关闭
bw.close();
System.out.println("执行完毕");
}
}

浙公网安备 33010602011771号