在java中读取文本文件直到EOF
我正在尝试读取一个文本文件,该文件- 你好,詹姆斯 你今天好吗 我正在使用以下代码:在java中读取文本文件直到EOF,java,Java,我正在尝试读取一个文本文件,该文件- 你好,詹姆斯 你今天好吗 我正在使用以下代码: int readedValue; do { while((readedValue = bufferReader.read()) != 10) { //readedValue = bufferReader.read(); char ch = (char) readedValue; System.out.print(ch); } } while ((reade
int readedValue;
do
{
while((readedValue = bufferReader.read()) != 10)
{
//readedValue = bufferReader.read();
char ch = (char) readedValue;
System.out.print(ch);
}
}
while ((readedValue = bufferReader.read()) != -1);
当我现在读这个文件时,我得到的输出是hello James!你今天好
我不知道该怎么做。我怎样才能修改这个以获得完整的文本?我想你需要这个
int readedValue;
while ((readedValue = bufferReader.read()) != -1)
{
if(readedValue != 10)
{
System.out.print((char) readedValue);
}
}
在循环的条件下,
do将丢失一个字符
do {
...
// ends when the first new line \n character is reached
}
while ((readedValue = bufferReader.read()) != -1);
^ never printed
// the character that isn't read is the first character after the \n, ie. 'H'
使用单个循环存储readedValue
(readValue)并对该值进行任何比较。在您的示例中,遇到换行符时,您将读取字符两次
do
{
while((readedValue = bufferReader.read()) != 10) // Here
{
//readedValue = bufferReader.read();
char ch = (char) readedValue;
System.out.print(ch);
}
}
while ((readedValue = bufferReader.read()) != -1); // Again here
你应该只读一次
while ((readedValue = bufferReader.read()) != -1)
{
if(readedValue != 10)
{
char ch = (char) readedValue;
System.out.print(ch);
}
}
这将有助于您:
String line;
int readedValue;
String s = "hello James!\n\rHow are you today!";
StringReader input = new StringReader(s);
BufferedReader lineReader= new BufferedReader (input);
while((line=lineReader.readLine())!=null) {
StringReader input2 = new StringReader(line);
BufferedReader charReader= new BufferedReader (input2);
while((readedValue = charReader.read()) != -1) {
char ch = (char) readedValue;
System.out.print(ch);
}
}
那BufferedReader类呢?!谷歌搜索“java逐行读取文件”,你会发现很多例子。char
表示10
是\n
。谢谢@SotiriosDelimanolis