【问题标题】:I saved the text1.txt file in the same folder as the Algo.java file is in. But i get a Filenotfoundexception and i can't find any reason for that我将 text1.txt 文件保存在与 Algo.java 文件所在的文件夹相同的文件夹中。但我得到一个 Filenotfoundexception 并且我找不到任何原因
【发布时间】:2014-05-07 11:14:41
【问题描述】:

我将 text1.txt 文件保存在与 Algo.java 文件所在的文件夹相同的文件夹中。但是我得到一个 Filenotfoundexception 并且我找不到任何原因。

import java.io.*;
import java.util.logging.Level;
java.util.logging.Logger;

public class Algo{

 static void naive(){
  BufferedReader file1;
 try{
   file1=new BufferedReader(new FileReader("text1.txt"));
  String T=file1.readLine();
  System.out.println(T);
 }
  catch (FileNotFoundException ex) {
        Logger.getLogger(Algoq1.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(Algoq1.class.getName()).log(Level.SEVERE, null, ex);
    }
 }

    public static void main(String args[]){
      Algo.naive();
    }
  }

【问题讨论】:

  • 您的 Algo.class 文件保存在哪里?尝试提供“text1.txt”文件的完整路径。你有什么包结构吗?

标签: java exception file-io bufferedreader filenotfoundexception


【解决方案1】:

将资源分开放置在您的代码中,以使其对其他不同包的类也可管理和重用。

尝试其他选项。

// Read from same package 
InputStream in = Algoq1.class.getResourceAsStream("text1.txt");

// Read from resources folder parallel to src in your project
File file = new File("resources/text1.txt");

// Read from src/resources folder
InputStream in = Algoq1.class.getResourceAsStream("/resources/text1.txt");

【讨论】:

    【解决方案2】:

    “我将 text1.txt 文件保存在与 Algo.java 文件所在的文件夹相同的文件夹中。但我得到一个 Filenotfoundexception 并且我找不到任何原因”

    然后从类路径中读取文件。您可以从Algo.class.getResourceAsStream() 获得InputStream

    InputStream is = Algo.class.getResourceAsStream("text1.txt");
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    

    当您尝试将其读取为File(使用FileReader(String path) 时的情况)时,将在文件系统中搜索文件,并且在您的IDE 中,搜索将从指定的工作目录开始(通常是项目根目录)。因此,要使FileReader 正常工作,只需传递文件名,该文件应该位于工作目录中。

    根据要求,应用程序是特定于您的系统还是应该分布在其他系统上,您需要决定是从类路径还是从文件系统读取文件。

    【讨论】:

      猜你喜欢
      • 2015-08-30
      • 2014-11-22
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多