我正在编写一个java应用程序,我在其中自动导入外部csv文件在后台执行计算。但问题是我在我的java程序中使用“绝对”文件路径,生成的jar文件不能在另一台计算机上工作。无论如何,在Java中使用一种“工作目录路径”,以便我仍然可以在另一台计算机上运行该jar文件,只要我把我想导入到jar文件所在的文件夹中的csv文件?关于在java应用程序中引用外部文件
谢谢!
我正在编写一个java应用程序,我在其中自动导入外部csv文件在后台执行计算。但问题是我在我的java程序中使用“绝对”文件路径,生成的jar文件不能在另一台计算机上工作。无论如何,在Java中使用一种“工作目录路径”,以便我仍然可以在另一台计算机上运行该jar文件,只要我把我想导入到jar文件所在的文件夹中的csv文件?关于在java应用程序中引用外部文件
谢谢!
您可以使用它的名字一样
try (BufferedReader br = new BufferedReader(new FileReader("text.txt"))) {
String line;
while ((line=br.readLine())!=null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
读取文件
这里text.txt
应该在执行jar
的同一个工作目录中。
您也可以通过命令行读取目录名称,使用命令行参数,像
public static void main(String[] args) {
//check if there were any command line arguments
if (args.length > 0) {
// args[0] is the first command line argument unlike C where args[0] would give u the executable's name
} else {
System.err.println("Usage: java -jar <jar_name> [directory_names..]");
}
}
你也可以有一个配置文件,如属性文件中读取目录名。
非常感谢!很有帮助! – xyin
新的文件( “”)给你的相对路径
,你可以写这样的相对路径:
File file = new File(".\\CSVs\\myfile.csv");
System.getProperty(“user.dir”)将返回工作目录。
System.getProperty( “user.dir来”)+ “\\ myfile.txt的”
更多的信息在这里:system properties, oracle docs
你可以通过目录名称作为命令行参数。 – Kishore
@Kishore我是java编程新手。如果我不想输入目录或在文件选择界面中选择文件,而是在应用程序中添加按钮,以便我可以简单地按下按钮以自动导入文件,该怎么办? – xyin
你如何运行jar文件? – subash