字符流

字符流

字符流的父类(抽象类):

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("执行完毕");
}
}
posted @ 2021-03-15 17:30  星忄守候  阅读(53)  评论(0)    收藏  举报