我正在尝试按照一段代码打开并阅读文本文件。为此,我有一个名为readText的包。在我构建一个类readLocalFile来打开和读取文件,以及一个调用它的main方法。以下是这两个类。
public class readFileLocal {
private String path;
public readFileLocal(String file_path){
path = file_path;
}
int readLines() throws IOException{
FileReader file_to_read = new FileReader(path);
BufferedReader lines = new BufferedReader (file_to_read);
int numberOfLines = 0;
while(lines.readLine()!= null) {
numberOfLines ++;
}
lines.close();
return numberOfLines;
}
public String[] openFile() throws IOException{
FileReader freader = new FileReader (path);
BufferedReader textReader = new BufferedReader (freader);
int numberOfLines = readLines();
String[] textData = new String[numberOfLines];
int i; /* put all the lines of text from the file to the array*/
for (i=0; i<numberOfLines; i++){
textData[i] = textReader.readLine();
}
textReader.close();
return textData;
}
}
然后我有一个主要类来调用它。代码如下:
public class fileData {
public static void main(String[] args) throws IOException{
String file_name = "F:/Testfile.exl";
try{
readFileLocal file = new readFileLocal(file_name);
String[] arylines = file.openFile();
int i;
for (i=0; i<arylines.length; i++){
System.out.println(arylines[i]);
}
}
catch(IOException e) {
System.out.println(e.getMessage());
}
}
}
当我运行它时,Eclipse给了我这个错误消息:
错误:在类readText.fileData中找不到main方法,请将main方法定义为:public static void main(String [] args)或JavaFX应用程序类必须扩展javafx.application.Application
知道出了什么问题吗?
答案 0 :(得分:0)
您可能应该开始一个新项目。 Eclipse认为您正在运行JavaFX程序(在这种情况下,filedata应该扩展Application)。
在没有JavaFX的情况下进行正常构建。
答案 1 :(得分:0)
可能您已在同一个包中声明了自己的If (dt.rows.count == 0)
{
' no rows returned, notify user
}
类。在这种情况下,Eclipse无法识别main方法中的预期String
。将主方法声明编辑为
java.lang.String
并尝试运行它。
答案 2 :(得分:0)
我将您的代码加载到我的Eclipse副本中,它运行主方法没有问题。一个奇怪的事情,当我保存文件时,我得到一条消息,关于字符被编码为&#34; Cp1252&#34;编码而不是预期的UTF-8。我将代码从StackOverflow剪切并粘贴到Eclipse中。也许这与问题有关?
在Eclipse中,您可以通过选择
来检查发生了什么Run > Run Configurations...
&#34; Main&#34;选项卡将显示Eclipse认为是要调用的主要方法,其他选项卡将显示是否有任何参数被发送。
此外,它可能值得运行
Project > Clean
为你的项目。
要检查的疯狂事情:是否还有其他同名的类? 您是否在同一个类文档中定义了多个类?
要检查的另一件事是,导航到类文档,&#34; fileData&#34; (确实应该是FileData,遵循惯例,否则它会增加每个人试图帮助或与你合作的困惑),然后右键单击。右键单击是否提供以下内容?
Run As > 1) Java Application
或者是否表明了这一点?
Run As > Run Configurations...
第一种情况表明它找到了主要方法,在第二种情况下,没有找到主要方法。
可以忽略JavaFX的内容。你根据我看到的任何代码都没有运行JavaFX,所以这个问题没有实际意义。
顺便说一下,在你的main方法中,你在try / catch中捕获了IOException,因此不需要包含&#34;抛出IOException&#34;在主要方法。