使用 java 应用程序可执行文件打开并读取随机 .txt,不知道 .txt 的路径

open and read random .txt with java aplication executable not knowing the rute of .txt

我想知道如何在 Java 应用程序中打开和显示 .txt。 .txt 与应用程序相关联,当您单击它时,应用程序会打开,但如果不通过固定路径,则不会显示该文件。

我必须展示它,但前提是 .txt 文件与 jar 文件位于同一目录中,并且 运行 应用程序必须直接展示。从 .txt 直接访问打开应用程序,但仅此而已。

我有这段代码,你看路径直接把他们搞定。我要你取自.txt 已被点击。

    FileReader f = new FileReader("archivo.txt");
    BufferedReader b = new BufferedReader(f);

    String linea_cliente = b.readLine();
    StringTokenizer datos_cliente = new StringTokenizer(linea_cliente,";");
    while(datos_cliente.hasMoreTokens()){
        pedido.setText(datos_cliente.nextToken());
        id_cliente.setText(datos_cliente.nextToken());
        nom_cli.setText(datos_cliente.nextToken());
        dir_cli.setText(datos_cliente.nextToken());
        cp_cli.setText(datos_cliente.nextToken());
        loc_cli.setText(datos_cliente.nextToken());
        prov_cli.setText(datos_cliente.nextToken());
        pais_cli.setText(datos_cliente.nextToken());
        obs_cli.setText(datos_cliente.nextToken());
    } 

抱歉我的英语不好。谢谢 ;)

FileReader f = new FileReader("archivo.txt");

暗示archivo.txt是一个相对路径。与当前可执行文件相关的相对含义。这是一个隐含的 .\archivo.txt

您可以将它放在子目录中并再次使用相对路径,例如 .\myfiles\textfiles\archivo.txt,其中 .\ 是您的 jar 的位置。

如果你想输入许多不同的文本文件,但你不知道它们在哪里,那么你可以使用参数。从命令行看起来像:

> java jar myproj.jar C:\test\foo\archivo.txt

要在 main() 中访问它,请使用:

String filePath = args[0]
FileReader f = new FileReader(filePath);

如果您希望它可以跨多个系统移植,您需要利用 environment variables 获取基本路径,然后将路径附加到您的 .txt 文件到基本路径。

抱歉,有点不清楚您的要求,所以我介绍了一些常见情况,如果您需要说明,请告诉我。