在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