可以帮我看看哪里错了吗
这你先要告诉我,现在有什么跟你预期不一致的地方耶。。瞄了下你给楼上的留言,为啥上面你跟他说你只读到一行,下面你就不跟我说呢,这不公平= =。。。
你可以试下这样写:
String message="",temp;
while((temp=reader.readLine())!=null)
{
message+=temp;
}
不过行与行之间不会换行,因为每次读到的都是一行的内容,不含换行符,你可以在temp后面再加多个换行符。
另外错误不是应该用:System.err.println();吗,还有关闭的应该是上级的流,br和bw
就是能读到第一行的内容第二行以后的就读不到啊,还有怎样将最后的结果保存到另一个文档中啊
追答只读到第一行内容是因为你只执行了一次 line=br.readLine(),你应该放到循环结构里面。好像我回答那样,reader对等于你的br。
至于保存,你没必要用BufferedWriter来包装FileWriter,用FileWriter的writer(String str),把一次读到的内容一次写到目标文件就可以了,如果你发现你写的文件内容为空,那是因为你没有关闭bw流。
现在读取没问题了,但仍然保存不了,可以帮我就下面的代码修改一下吗?谢谢
if(e.getSource() == noteSave){
try
{
FileOutputStream notelist = new FileOutputStream("input.txt");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(notelist));
String line = null;
while(true){
bw.write(line+"\n");
if(line == null)
{
break;
}
catch{
}
这当然写不了啦,bw.write(String str),这里的str就是写进文件(txt)的内容,比如说bw.write("Hello"),那么写完之后你打开txt,看到的就是Hello。
你这里的String line=null,说明你这个字符串是null(待定义),而你接下来的循环里面if(line==null),这样循环就直接跳出去了,因为你的line本来就是null。
按照我之前说的那个思路,比如你读入的文本叫read.txt,内容为:
你好,
今天天气不错。
那你一行一行读这个文本,第一行为"你好,",第二行为“今天天气不错。”。你用一个字符串拼接这两个内容就是"你好,"+"\n"+"今天天气不错。”,然后把这个内容写入,bw.write(""你好,\n今天天气不错。”"),这样完成从一个文本读,然后写到另一个文本中了。
最后记得关闭bw流。
BufferedReader 一行一行的读
PrintWriter 一行一行的写
try(BufferedReader reader = Files.newBufferedReader(Paths.get("D:\\Temp","天下无双.txt"), Charset.forName("GBK"));