字符流写入和读取
package com.zzh.homework;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CharHomework {
public static void transWriteByBuf(BufferedWriter bw) {
try {
bw.write("你好吗?");
bw.newLine();
bw.write("我很好!");
bw.flush();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
public static void transReadByBuf(BufferedReader br) {
String s=null;
// int n=0;
// char[] c=new char[1024];
try {
// while((n=br.read(c))!=-1) {
// System.out.print(new String(c));
// }
while((s=br.readLine())!=null) {
System.out.println(s);
}
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
public static void main(String[] args) {
FileReader fr;
BufferedReader br;
FileWriter fw;
BufferedWriter bw;
try {
fr=new FileReader("hello.txt");
br=new BufferedReader(fr);
fw=new FileWriter("hello.txt");
bw=new BufferedWriter(fw);
transWriteByBuf(bw);
transReadByBuf(br);
fr.close();
br.close();
fw.close();
bw.close();
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
麻烦老师看下改进方向,还有readLine和newLine方法根本没讲啊,看文档也没怎么看懂,还是看了同学的作业才知道这两个方法的使用,详细解答下这两个方法把
18
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小小
2021-08-23 13:35:41
同学你好,readLine()方法是读取一行文本,newLine()方法是写入一个行分隔符,相当于换行\n。
若在写入时不加bw.newLine();,则写入的文本将在一行显示。效果如下所示:
另外同学代码整体完成的很好,运行结果与效果图相符,但代码实现中有一点不太符合题目要求,题目要求应用转换流向文件写入文本,而代码中未使用转换流,建议使用文件字节输入/输出流,参考代码如下:
//输出流参考代码 FileOutputStream fos = new FileOutputStream("hello.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos); BufferedWriter bw = new BufferedWriter(osw); //输入流参考代码 FileInputStream fis = new FileInputStream("hello.txt"); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr);
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星