我正在尝试创建一个程序,该程序读取.java文件,然后将每一行放入ArrayList:
import java.util.ArrayList;
import java.util.Scanner;
import java.io.IOException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
class H01_43 {
public static void main(String[] args) {
Scanner userInput = new Scanner( System.in );
System.out.println("Please enter the file name.");
String fileName = userInput.nextLine();
TextFile file1 = new TextFile();
file1.createArray(fileName);
userInput.close();
}
}
class TextFile{
public TextFile(){
}
public void createArray(String pFileName){
String currentLine = "";
ArrayList<String> mList = new ArrayList<>();
try{
Scanner userFile = new Scanner(newFile(pFileName));
while(userFile.hasNextLine()){
currentLine = userFile.nextLine();
mList.add(currentLine);
}
}catch(FileNotFoundException exception){
e.printStackTrace();
}finally{
userFile.close();
}
}
}
我不断收到以下错误消息:线程“主”中的异常java.lang.Error:未解决的编译问题:未处理的异常类型FileNotFoundException
at TextFile.createArray(H01_43 make a java file into txt file.java:47)
at H01_43.main(H01_43 make a java file into txt file.java:27)
曾与一位导师合作,他说我的代码看起来不错,但是以某种方式我继续产生此错误,因此无法编译或测试我的代码。
有两个问题:您用错误的名称引用了该异常,并引用了范围之外的userFile
:
Scanner userFile;
try{
userFile = new Scanner(newFile(pFileName));
while(userFile.hasNextLine()){
currentLine = userFile.nextLine();
mList.add(currentLine);
}
}catch(FileNotFoundException exception){
exception.printStackTrace();
}finally{
userFile.close();
}