麻烦老师帮我看一下问题出在哪里了?
来源:4-7 自由编程
Michael_2020
2020-03-14 17:40:39
控制台输出没有问题,文件中会在中间多了一个换行呢?
另外,麻烦老师看一下这样写是否合理?谢谢。
package com.yito.hello; import java.io.*; public class Hello { //写入文件的方法 public void tranWriteByBuf(File file){ try { BufferedWriter bw = new BufferedWriter(new FileWriter(file)); bw.write("\r你好吗?\n"); bw.write("\r我很好!\n"); bw.flush(); bw.close(); } catch (IOException e) { e.printStackTrace(); } } //从文件读出内容的方法 public void tranReadByBuf(File file){ try { BufferedReader br = new BufferedReader(new FileReader(file)); int n=0; while ((n=br.read())!=-1){ System.out.println(br.readLine()); } br.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { Hello hello = new Hello(); hello.tranWriteByBuf(new File("hello.txt")); hello.tranReadByBuf(new File("hello.txt")); } }
2回答
同学你好,因为写入的数据需要存储到文件中,所以new File对象。如果同学在tranWriteByBuf方法中直接将其写入到hello.txt.那么在main方法中就可以直接调用了。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
好帮手慕小脸
2020-03-14
同学你好,
1、\r表示回车,写入到文本文件中就是一个回车换行的作用,在进行文本读取时,会默认换行。
2、去掉\r后,在进行循环判断时,不应该调用read()方法作为判断条件,因为该方法表示读一个字符,然后在进行循环体中,执行br.readLine()为读取一行,因为已经读取第一个字符了,所以会输出为“好吗?”。修改如下:
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题