我一直在努力阅读java项目中的文本文件,我一整天都在寻找解决方案,我尝试了很多方法,但没有一个有效。其中一些:(另外,我必须使用文件和扫描程序类)
String file = "fileTest.txt";
var path = Paths.get("test", file);
System.out.println(path);
System.out.println(Files.readString(path));
异常线程"main"java.nio.file.NoSuchFileExc0019: test\fileTest.txt
URL url = ClassLoader.class.getResource("fileTest.txt");
File file = null;
file = new File(url.toURI());
Scanner scanner = new Scanner(file);
scanner.useDelimiter(" ");
while(scanner.hasNext()) {
System.out.println(scanner.toString());
}
异常线程"main"java.lang.NullPointerExc0019
File file = new File("../test/fileTest.txt");
Scanner scanner = new Scanner(file);
scanner.useDelimiter(" ");
while(scanner.hasNext()) {
System.out.println(scanner.toString());
}
scanner.close();
线程“main”java中出现异常。木卫一。FileNotFoundException:。。\test\fileTest。txt(系统找不到指定的路径)
使用BufferReader读取文件,使用try with resource在处理终止时自动关闭资源。
请参见Javatry-with-Resources:https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
编辑:确保已将文件夹作为资源包含在生成路径中。如何在Eclipse中将资源文件夹添加到Java项目中
String inputFile = "test/fileTest.txt";
List<String> lines = new ArrayList<>();
try(BufferedReader bufferedReader = new BufferedReader(new FileReader(inputFile))) {
String line = bufferedReader.readLine();
while(line != null){
lines.add(line);
line = bufferedReader.readLine();
}
} catch (IOException e) {
e.printStackTrace();
}
所有关于相对路径的答案都将起作用或不起作用,这取决于运行程序时您的工作目录是什么。如果您真的希望您的文件位于类路径中,您要做的是将其用作资源,并查看如何在运行时加载资源。另一方面,如果你想像对待任何其他文件一样对待它,如果你期望任何相对路径工作,或者在某个已知的地方指定绝对路径,比如配置,你需要知道运行时的工作目录是什么文件。
这里的问题是项目结构和如何定位该文件。通常,您的java类文件应该存在于目录src/main/java
中,而您的资源文件应该存在于src/main/资源
中。如果遵循此约定,则可以使用ClassLoader获取资源。
try (InputStream input = getClass().getClassLoader().getResourceAsStream("test.txt");
Scanner scanner = new Scanner(Objects.requireNonNull(input)).useDelimiter(" ")) {
while(scanner.hasNext()) {
System.out.println(scanner.toString());
}
} catch (IOException ioe) {
throw new RuntimeException("Something went wrong scanning file!", ioe);
}
在Karaf中,包有没有办法从另一个包读取属性文件? 我有 bundle1,它包含 bundle2 使用的一些类(bundle1 通过 maven-bundle-plugin 导出包含这些类的包,bundle2 导入它)。但是 bundle2 还需要使用 bundle1 中的属性文件。除了类之外,还有没有办法从 bundle1 访问一个文件? 据我所知,一种选择是通过features文件将属性部署
我试图读取一个名为“numbers.txt”的文件,该文件中填充了整数(每行一个整数,没有空行)。我想把数字放入一个数组,然后返回这个数组(method)。无法找到文件,因此返回null。如果我把文件“numbers.txt”和Class放在同一个文件夹中,它会工作,但我不知道如果我把“numbers.txt”文件放在resources文件夹中,为什么它不工作。我想可以把它放到那里吗?main只是
我正在使用Intellij Idea-2021.3.2和Java8。在Intellij中,我无法读取同一模块中另一个包中的文件。该文件位于main而不是资源文件夹下。但在Eclipse中,我可以读取。 例如。下面的代码在 eclipse 和 intellij 中打印不同的输出。 在Intellij中,代码打印“资源为空”,但在eclipse中,代码打印“资源已找到!!”。 在intellij中是否
问题内容: 我创建了一些代码,要求用户输入int值,然后将其传递给我的第一个方法parity()。然后,Parity()会告诉用户它是奇数还是偶数。该方法完成后,我希望我的主程序打开与程序位于同一程序包中的文件,但我的异常不断出现,并终止输出“找不到文件或无法打开文件”的程序是一个简单的修复程序,但是我尝试的大部分操作并没有使它变得更好。到目前为止,这是我的代码: 问题答案: 我不确定我是否理解正
我正在寻找一种在读取字节(作为字节[])和从文件中读取字符串行之间切换的方法。我知道字节[]可以通过FileInputStream从文件中获取,字符串可以通过BufferedReader获取,但同时使用这两个字节是有问题的。我知道字节段有多长。当我写文件时,字符串编码可以保持不变。该文件类型是一个仍在开发中的自定义文件类型,因此我可以更改向其写入数据的方式。 我怎么能读取字符串和字节[]s从相同的
我正在使用python,我有一个文件(