在我的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');
我得到的错误是“无效的字符常量”。 我该如何解决这个问题?
答案 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"));