java - 访问具有名称的文件的正确方法

标签 java file netbeans file-io path

好吧,我需要有人帮我解决问题。
我看到了一百种不同的访问文件并在其中读取的方式 (FileReader)。

我尝试了所有方法,但找不到正确的方法。

如果我尝试:

String path = Engine.class.getResource("Words.txt").toString();

URL url = getClass().getResource("Words.txt");
String path = url.getFile();
File myFile = new File(path);

我直接转到:

dispatchUncaughtException

我只是不知道该去哪里寻找,因为似乎没有人同意这样做的好方法。另外,这种异常是什么?
必须有一种简单的方法来做到这一点,因为这是一项如此简单的任务。我只想让我的程序看到位于项目的 SRC 文件夹中的 Words.txt 文件。

<小时/>

完整代码(如果有帮助的话):

public String GetWord()
{
 String [] Words = new String [10];
 int random = (int)(Math.random() * 10);
 URL url = getClass().getResource("Words.txt");
 String path = url.getFile();
 File myFile = new File(path);

  try 
  {
       FileReader myReader = new FileReader(myFile);
       BufferedReader textReader = new BufferedReader(myReader);

        for(int i = 0; i < 10; i++)
        {
           Words[i] = textReader.readLine();
        }
   } 
  catch(Exception e) 
  { 
        System.out.println(e.getMessage());
  }

  return Words[random];
  }

最佳答案

String path = Engine.class.getResource("Words.txt").toString();

要使其正常工作,您的文件必须与 Engine 类位于同一包中。因此,您可能希望将文件移动到该类所在的包中。

如果您想将文件移动到其他包中,那么您需要指定从类路径的根开始的位置。例如/some/other/pkg/Words.txt

<小时/>

对于不在类路径中的文件,您需要完整路径和文件名才能读取该文件。 SRC 文件夹本身不是一个包,也不在类路径中。

在这种情况下,您可以执行以下操作:

FileInputStream fis = new FileInputStream("C:\\path\\to\\file\\Words.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));

关于java - 访问具有名称的文件的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13335268/

相关文章:

java - jni4net 不兼容的类更改错误

java - 打开现有的 Java 项目

java - Startup() SingleFrameApplication 警告 : getApplicationResourceMap(): no Application class 出现问题

javascript - 仅使用javascript检查音频文件是否存在

java - 我的正则表达式有什么问题 -?\\d{2}\\.?\\d{6}

java - 托管来自 Java 站点的纯旧 HTML

Java:如何将变量从 JButton ActionListener 传递到主类?

java - 使用 spring 数据存储库而不是生成的轴突存储库

Python - move 和覆盖文件和文件夹

c - 从C文件中读取字符串的问题