使用Java逐行读取文件内容

时间:2014-05-07 16:01:21

标签: java

在我的java程序中,我需要使用java逐行读取文件的内容。我尝试了以下代码,但是我收到了这个错误

import acm.program.*;  

import acm.util.*;
import java.io.*;
import java.util.*;

public class ReadFile  extends ConsoleProgram{

    private BufferedReader openFileReader(String Prompt){
        BufferedReader rd =null;
        while(rd==null){
            String name=readLine(Prompt);
            try{
            rd=new BufferedReader(new FileReader(name));

        }catch(IOException ex){
            println("cannot open");


        }

    }
        return rd;

    }

public void run(){
    BufferedReader rd = OpenFileReader('File');
    try{
        while(true){
            String line=rd.readLine();
            if(line==null){
                break;
            }
            rd.close();
            catch(IOException ex){
                throw new ErrorException(ex);

            }
        }
    }
}

}

我在这一行收到错误

BufferedReader rd = OpenFileReader('File');

我得到的错误是“无效的字符常量”。 我该如何解决这个问题?

4 个答案:

答案 0 :(得分:2)

您将File短语视为字符而不是字符串:

BufferedReader rd = OpenFileReader('File');

将其更改为:

BufferedReader rd = OpenFileReader("File");

答案 1 :(得分:1)

简答:单引号适用于char s,而非String s。将单引号更改为double将解决您的问题,如Yair Nevet's answer中所述。

答案稍长:

Java中的String有双引号,例如"。这可以在开始和结束"之间有任意数量的字符。

Java中的char有单引号,例如'。这在开始和结束'之间只能有一个字符。

当您尝试在开始和结束Invalid character constant之间分配多个字符的char值时,会出现'消息。

答案 2 :(得分:0)

雅纠正了。那是错误。我是java编程的新手..

答案 3 :(得分:-2)

简单的方法是使用org.apache.commons.io.FileUtils

FileUtils.readLines(new File("path"));