当前位置: 首页 > 知识库问答 >
问题:

使用try/catch块尝试读取文件时出现未处理的异常错误

华萧迟
2023-03-14

我正在尝试创建一个程序,它可以读取一个。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();
        }
    }

}

我一直收到以下错误消息:

线程“main”java中出现异常。lang.错误:未解决的编译问题:
未处理的异常类型FileNotFoundException

at TextFile.createArray(H01_43将java文件放入txtfile.java:47)
at H01_43.main(H01_43将java文件放入txtfile.java:27)

我试着与一位导师合作,他说我的代码看起来很好,但不知怎么的,我继续产生这个错误,因此无法编译或测试我的代码。

共有1个答案

公孙联
2023-03-14

事实上,从上学期开始,我就一直在努力解决这个问题,而且刚刚解决。以下是我的方法和更改:

public void createArray(String pFileName){
    String currentLine = "";
    ArrayList<String> mList = new ArrayList<>();    

    try{   
        Scanner userFile = new Scanner(new File(pFileName));        
        while(userFile.hasNextLine()){
            currentLine = userFile.nextLine();
            mList.add(currentLine);

        }
    }catch(FileNotFoundException exception){

    }

}

第一个问题是newFile应该是新文件,但我的主要问题是我需要删除finally和userFile。关闭()。我不确定为什么会这样,如果有人能为我提供一些见解,我将不胜感激。

 类似资料:
  • 问题内容: 在一个教程中,我发现 您的代码无法处理Unchecked Exception, 即我们不能使用块,示例是类似的异常,但是可以使用try / catch块处理这些异常。我认为我不清楚这个概念! 我也认为throw关键字只能与block.can一起使用吗? 问题答案: 已检查和未检查的异常之间的唯一区别是,必须使用捕获或在方法签名中声明 已 检查的异常,而对于未检查的异常,这是可选的。 您

  • 当我试图让用户重新输入一个数字时,会出现这个错误。 错误显示在guess=scan的下一次迭代中。nextInt(); 输入/输出: 我只是重新学习Java,任何帮助都很感激。

  • 本文向大家介绍SQL Server 2005 中使用 Try Catch 处理异常,包括了SQL Server 2005 中使用 Try Catch 处理异常的使用技巧和注意事项,需要的朋友参考一下 TRY...CATCH是Sql Server 2005/2008令人印象深刻的新特性.提高了开发人员异常处理能力.没有理由不尝试一下Try.. Catch功能. * TRY 块 - 包含可能产生异常的

  • 不管你多么精通编程,有时我们的脚本总还是会出现错误。可能是因为我们的编写出错,或是与预期不同的用户输入,或是错误的服务端响应以及其他数千种原因。 通常,如果发生错误,脚本就会“死亡”(立即停止),并在控制台将错误打印出来。 但是有一种语法结构 try..catch,它使我们可以“捕获(catch)”错误,因此脚本可以执行更合理的操作,而不是死掉。 “try…catch” 语法 try..catch

  • 这个块似乎没有捕获发生的错误,这很奇怪,考虑到我对网站的注册部分有一个类似的块。这将处理登录。该错误发生在第三行 并引发此错误: 当电子邮件格式错误时会发生这种情况,例如。因此,当它是时,我希望在块中设置错误消息。 有人知道为什么这个< code>try catch不起作用吗?

  • 问题内容: 最近,我遇到了一位程序员的代码,其中他在catch中有一条try-catch语句! 请原谅我无法粘贴实际代码,但是他所做的与以下内容类似: 我个人认为这是我见过的最差的代码!以1到10的比例,您认为我应该多久才能动一下脑子,还是我反应过度? 编辑:他实际上在抓捕中所做的事情,他正在执行一些操作,这些操作在初始尝试失败时可以/应该执行。我的问题是拥有干净的代码和可维护性。将异常从第一个c