【问题标题】:Working with file in Eclipse在 Eclipse 中处理文件
【发布时间】:2011-12-27 19:45:06
【问题描述】:

我有在命令行中运行程序的指令,例如:

java SetTest < alice30.txt

我想知道如何在 Eclipse 中执行此操作。我试图把它放在运行配置中,如下所示:

我不知道的另一件事是把这个文件(alice30.txt)放在哪里。这是在项目的根目录中还是在源文件所在的 src 文件夹中?

我知道这些是初学者的问题,但我遇到了困难,需要帮助。

编辑: 正如@Kane 建议的那样,我通过了文件并打开了流。 而不是:

Scanner in = new Scanner(System.in);

我现在使用:

Scanner in = new Scanner(new File("alice30.txt"));

【问题讨论】:

标签: java eclipse command-line-arguments


【解决方案1】:

您可以在参数中传递完整的文件路径(例如 c:/.../alice30.txt))

【讨论】:

  • 没关系,但我想知道当我通过相对路径转发文件时将文件放在哪里可以访问,例如只输入 alice30.txt?
  • 无论如何,完整的文件路径都是非常糟糕的风格。这意味着您必须在另一台计算机上拥有完全相同的文件夹结构,并且四处移动文件很痛苦。相对路径是要走的路:)
【解决方案2】:

eclipse根目录是项目的基目录(即不是src/目录,直接在项目下)

为 txt、图形等设置一个“资源”文件夹通常是一种很好的风格。

您可以只传递文件名并自己打开流,而不是尝试传递流。

您在 Eclipse 中所做的操作不起作用的原因是您的命令提示符/shell/dos/bash/whatever 正在为您处理从文件中创建输入流。 Eclipse 不这样做。因此,从命令行:&lt; alice.txt 的意思是“不带参数运行这个程序,并创建一个到 system.in 的流”,而在 Eclipse 中这样做意味着“用两个参数运行这个程序 '

【讨论】:

    【解决方案3】:

    你需要这样做: 添加: 导入java.io.IOException; 导入 java.nio.file.Paths;

    然后: 替换"扫描仪 in = new Scanner(System.in);"to"扫描仪 in = new Scanner(Paths.get("alice30.txt"));" . 你还需要这样做:“public static void main(String args[]) throws IOException”

    【讨论】:

      【解决方案4】:

      通过此链接/页面中的信息和多次尝试,我找到了一种在 eclipse Run -> Run Configurations.. 中使用本地路由传递参数和文件的方法,尽管不建议像 Kane 所说的那样。

      对于我的情况:我需要执行“$java someClass tinyW.txt

      在我的例子中,“tinyW.txt”是一个参数,所以在eclipse环境下,你可以在Run -> Run Configurations -> Arguments -> Program arguments:/local address/tinyW.txt中设置。对于我的 Ubuntu:/home/****/tinyW.txt “ 运行配置->通用”中设置路由和文件,单击“输入文件”,使用文件系统图标并选择来自本地计算的文件。见图。所以在输入文件中:/local_address/tinyT.txt。我的情况是:/home/***/tinyT.txt。希望它也对你有用。

      【讨论】:

        猜你喜欢
        • 2011-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多