我有几个.dat文件,我的程序读取输入和输出。它们存储在项目文件夹中。我将如何读写这些文件,路径是什么?我希望能够压缩项目并将其发送给其他人使用,所以我无法硬编码路径,因为其他人可能不会将其放置在相同路径中有没有办法在不需要硬编码路径的情况下读取我们项目中的文件?
现在我正在使用扫描仪和文件类:
String input= "E:\\CProj01\\input.dat";
Scanner scannerInput = new Scanner(new File(input));
我有几个.dat文件,我的程序读取输入和输出。它们存储在项目文件夹中。我将如何读写这些文件,路径是什么?我希望能够压缩项目并将其发送给其他人使用,所以我无法硬编码路径,因为其他人可能不会将其放置在相同路径中有没有办法在不需要硬编码路径的情况下读取我们项目中的文件?
现在我正在使用扫描仪和文件类:
String input= "E:\\CProj01\\input.dat";
Scanner scannerInput = new Scanner(new File(input));
是的!您可以使用ClassLoader
如果你把位于项目的目录中的相对位置的文件,你可以这样做:
getClass().getClassLoader().getResourceAsStream("relative file path here")
然后你就可以使用返回InputStream
对象解析文件。
的ClassLoader
可以让你保持你的一切相对于项目的根文件,所以如果你已经组织了像这样的文件:
src_
|___files_
| -'yourfile.dat'
| -'anotherfile.dat'
|___java_
引用yourfile.data
与files/yourfile.dat
的String
争论就会让你的文件作为流,无论包的部署/下载/移动到哪里。
是的,如果你发送它,他们可以使用,编辑,那么你可以创建一个文件夹resources
,你可以简单地得到像
String input= "src/resources/input.dat";
Scanner scannerInput = new Scanner(new File(input));
你可以尝试一个JFileChooser的文件路径Java项目。
https://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser.html