当前位置: 首页 > 面试题库 >

Java-FilenotfoundException用于读取文本文件

章学义
2023-03-14
问题内容

通过运行此…

File file = new File("Highscores.scr");

我一直收到这个错误,我真的不知道该如何解决。该文件当前与.java文件位于我的源包中。通过指定路径,我可以很容易地读取文件,但是我打算在多台计算机上运行该文件,因此我需要文件可以随程序一起移植。这个问题不是关于读取文本文件,而是指定其位置而不使用绝对路径。香港专业教育学院寻找答案,但我得到的答案只是“指定名称”和“指定绝对路径”。ID张贴图像,使其更清晰,但我没有10代表这样做://我该怎么做?

干杯。


问题答案:

最好的方法是将其放在您的类路径中,然后再将getResource()

package com.sandbox;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;

public class Sandbox {

    public static void main(String[] args) throws URISyntaxException, IOException {
        new Sandbox().run();
    }

    private void run() throws URISyntaxException, IOException {
        URL resource = Sandbox.class.getResource("/my.txt");
        File file = new File(resource.toURI());
        String s = FileUtils.readFileToString(file);
        System.out.println(s);
    }


}

我这样做是因为我假设您需要一个File。但是,如果您的API带有一个InputStream代替,则最好使用getResourceAsStream代替。

注意路径/my.txt。这意味着,“获取一个名为my.txt的文件,该文件位于类路径的根目录中”。我相信您可以阅读更多有关的信息,getResourcegetResourceAsStream了解更多有关如何执行此操作的信息。但是这里的关键是,
文件的类路径对于您将可执行文件提供给任何计算机 (只要您不在类路径中移动文件)都相同。

顺便说一句,如果在行上获得空指针异常,则new File意味着您没有为文件指定正确的类路径。



 类似资料:
  • 可以使用FileReader直接读取文本文件 我们为什么需要使用InputStream方法

  • 我需要从我的DYNAMIC WEB PROJECT读取一个config.xml文件。我已将我的文件放在文件夹结构MyProj/WebContent/WEB-INF/class/config.xml文件夹中。当我打印文件的绝对路径new File(config.xml). getAbsoltePath()时,它会检查eclipse主目录(C:\Temp\eclipse\eclipse)而不是我的项目

  • 问题内容: 真正简单的问题。我需要在Java程序中读取Unicode文本文件。 我习惯于使用带有BufferedReader FileReader组合的纯ASCII文本,这显然不起作用:( 我知道我可以使用“缓冲读取器”以“传统”方式读取字符串,然后使用类似以下方式的字符串进行转换: 但是,有没有办法将阅读器包装在“转换器”中? 编辑:文件以FF FE开头 问题答案: 您不会包装Reader,而是

  • 问题内容: 我想读取不同块的日志文件,以使其成为多线程。该应用程序将在具有多个硬盘的服务器端环境中运行。读取成块后,应用程序将处理每个块的每一行。 我已经用bufferedreader完成了对每个文件行的读取,并且可以通过将RandomAccessFile与MappedByteBuffer结合使用来制作文件块,但是将这两者结合起来并不容易。 问题在于该块正好切入我块的最后一行。我从来没有块的最后一

  • 问题内容: 我想读取一个包含空格分隔值的文本文件。值是整数。如何读取并将其放入数组列表? 这是文本文件内容的示例: 我想将它包含在arraylist中。如何用Java做到这一点? 问题答案: 你可以用来将文本文件的所有行都放入。 教程:基本文件读取,写入和创建文本文件 你可以用来基于正则表达式拆分部分。 教程:数字和字符串>字符串>操纵字符串中的字符 你可以使用将转换为。 教程:数字和字符串>字符

  • 问题内容: 我有一个文本文件。我想从一行到另一行检索内容。例如,文件可以是200K行。我想从第78行到第2735行读取内容。由于文件可能很大,所以我不想将整个内容读取到内存中。 问题答案: 这是一个可能的解决方案的开始: