使用Intellij IDEA IDE读取文件

37
我是一名长期使用Eclipse的用户,最近开始尝试使用IntelliJ IDEA。据我理解,在IntelliJ中,项目与Eclipse工作区相同;此外,IntelliJ中的模块相当于Eclipse中的项目。
我在IntelliJ中创建了一个项目,但仍不确定为什么会有一个src文件夹,如果它应该是一个工作区的话。
随后,我在项目中创建了一个模块,并在新模块的src目录下创建了一个类,代码如下:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class MainClass {
    public static void main(String[] args) throws FileNotFoundException {
        System.out.println("Hello World!");
        Scanner input = new Scanner(new File ("test123.txt"));
        String answer = input.nextLine();
        System.out.println(answer);
    }
}

问题在于我尝试读取文件时出现了错误。我尝试将 .txt 文件放置在位于模块内部但位于 src 目录之外的 src 文件夹中,但无论在哪种情况下都找不到该文件。是的,代码是有效的,我在 Eclipse 上尝试过并且能正常工作。文件名也拼写正确。
如果有帮助的话,这是我的项目/工作区的图片:

Screenshot of IntelliJ

7个回答

39

直接将文件移动到调用Java项目的工程文件夹中,并放在您制作的蓝色模糊条目下。

如果这样做没有帮助,请将test123.txt文件移动到FirstJavaProgram目录中。

您还可以将文件名更改为以下之一:

  1. src/test123.txt

  2. FirstJavaProgram/src/test123.txt

我不确定哪个在您的情况下更好。


我把它移到了Java项目文件夹中,这样就解决了。但是为什么会在那里工作呢?项目文件夹不应该像一个“工作区”吗?如果我想要创建多个程序来完成不同的任务,它们应该是Java项目内的不同模块,对吗?难道文本文件不会混杂在一起吗?项目的目的不是为了容纳执行不同无关任务的多个模块吗? - ashimashi
我知道通常大型项目会被分成较小的模块,但Maven是主要使用的工具。因为我现在只是个业余爱好者,所以我从未参与过这样的大型项目:P 你是对的。然而,我建议你开始使用Maven,它非常有用,可以帮助你存储文件。 - azalut
我感觉你一直在使用Eclipse或NetBeans。IntelliJ IDEA在项目处理方面有很大不同。在Eclipse/NetBeans中,左侧面板显示了所有项目。IntelliJ没有这样的功能。您只能在一个IntelliJ IDEA应用程序/窗口中打开一个项目。当然,您可以通过:文件->重新打开项目->选择某个项目->按“在新窗口中打开”来打开多个项目。 - azalut
3
是的,起初可能会遇到一些问题,但我向你保证,IntelliJ是最好的Java IDE,你会慢慢习惯它。相比于其功能,展示多个项目的特点算不了什么 :) 你会发现它有很多可能性。 - azalut
谢谢,兄弟。这也帮到了我的问题 :P - Justin
显示剩余2条评论

26

请使用文件的完整路径。

在您的项目中右键单击文件,选择“复制路径”,然后将其粘贴到文件路径中即可。

编辑:您也可以使用相对路径来引用您的文件。如果您的文件位于资源/目录中,则可以使用形式为./资源/yourfile.txt

├── resources
│   └── test123.txt
└── src
    ├── MainClass.java

确实达到了效果。但如果我将该模块移动到另一个位置或发送给其他人,它就无法工作了。 - ashimashi
在那时,考虑允许最终用户在程序运行时自己提供路径。硬编码路径通常是最后的努力。 - Makoto
1
在Eclipse中没有类似的替代方案吗?文件可以存储在src文件夹之外,我只需要通过名称调用它即可,而不必给出路径并且不必放在模块之外。 - ashimashi
我也有这个问题。你找到了一个好的解决方案吗? - dazza5000

14

昨天我遇到了和你一样的问题。

更改 IDEA 的设置。运行->编辑配置 -> (在左侧窗口选择你的应用程序,然后在右侧窗口设置名为“工作目录”的输入内容)

点击这里查看图片


6
创建名为“files”的目录,并将所有文件放在该目录中。选择该目录,然后右键单击 -> 标记目录为 -> 资源根 :)

5

操作指南

  1. 在项目目录(即最顶层的文件夹)上右键,选择“新建 > 目录”。输入一个名称,如“resources”。

enter image description here

  1. (可选)生成文件夹后,在“resources”目录上右键,选择“新建 > 目录”,创建一个“images”文件夹。
  2. 将您的图像文件拖放到刚刚创建的“images”或“resources”文件夹中。使用代码 File myFile = new File("./resources/images/newfile.txt"); 引用您新添加的项目文件。

2
u need to specify complete path inside quotes something like this-->

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Application {
    public static void main(String[] args) throws FileNotFoundException {
        File file = new File("E:\\coding\\ProcessingFiles\\src\\myfile.txt");
        Scanner input = new Scanner(file);
        while (input.hasNextLine()){
            String line = input.nextLine();
            System.out.println(line);
        }
        input.close();

    }
}

感谢您的努力,但请确保您的回答相较于之前的回答额外增加了多少价值。 - Ganesa Vijayakumar

1
  1. 运行 > 编辑配置
  2. 配置选项卡下
    • 工作目录:您的文件路径相对于此目录。

希望这有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接