java readLine()的问题

来源:百度知道 编辑:UC知道 时间:2024/07/05 02:36:44
import java.io.*;
public class TestBuffered {
public static void main(String[] args) {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter("C:/Test.txt"));
BufferedReader br = new BufferedReader(new FileReader("C:/Test.txt"));
for(int i=0; i<10; i++) {
bw.write("java");
bw.newLine();
}
bw.flush();
bw.close();
/*int b;
while((b = br.read())!=-1) {
System.out.print((char)b);
} */ // A
String s;
while((s = br.readLine())!=null) {
System.out.print(s);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

以上这个小程序中,如果用readLine()方法,屏幕上显示不出来Test.txt文本中空格。 而用了注释掉的A部分的read()方法,却可以准确地显示Test.txt文本。请问,我在使用readLine()方法时哪里出了错?为什么readLine()不能读出空格?

看了API 程序没有什么错误,但是没有理解read(),readLine()方法。read是读入每一个字符,即使是用newLine定义的行分隔符也会读出来,但readLine不是。从字面上就能看出它的功能是读出一行,当然也就是它遇到行分隔符或行结束符,就停止读取了,不会把行分隔符读出来,只是它的一个标志。所以你要是想让它显示回车换行就只能用read才有意义,用readLine只能给它人为加上回车println
具体的看看api帮助

你也没写空格啊,奇怪??

你readline()然后print,而不是println当然把换行都弄没了啊

二楼正解,LZ注意区别read()和readLine()哟

看看API