Sha*_*zaz 1 java netbeans jar file
我是Java的新手,我遇到了一个无法找到解决方案的问题.我编写了一个读取和写入txt文件的程序.当我在NetBeans中运行它似乎工作正常,但是当我尝试运行JAR文件时,似乎程序无法访问txt文件.
我使用以下代码创建了该文件:
File data = new File("src/data.txt");
Run Code Online (Sandbox Code Playgroud)
它可能无法在创建文件时起作用吗?如果不是它会是什么?
编辑:文本文件被修改为程序前进,如果我使用输入流我将无法写入或更改txt文件,我应该改变我管理我的数据的方式?(txt文件)还是有一种方法让jar仍然可以访问Txt文件?
这个说法
File data = new File("src/data.txt");
Run Code Online (Sandbox Code Playgroud)
依赖于文件系统中存在的文件.您需要将该文件作为资源读取,以便可以独立于文本文件运行JAR文件
InputStream input = getClass().getResourceAsStream("/path/to/data.txt");
Run Code Online (Sandbox Code Playgroud)
编辑:
我建议使用将文本文件存储为"默认"的策略,然后在需要更改时,在"user.home"下写一个新文件.在读取任何数据之前检查修改文件是否存在.
方法1:在创建jar并运行程序的地方,jar目录下没有名为"src"的文件夹.您应该在jar位置的同一目录中创建一个名为"src"的文件夹.这将允许文件写入操作.
方法2:如果你想将txt文件保存在jar中,那么你可以使用:
InputStream in = this.getClass().getClassLoader()
.getResourceAsStream("your package path/data.txt");
Run Code Online (Sandbox Code Playgroud)
一个完整的例子:
package com.file.loader;
public class Main {
public static void main(String[] args) throws IOException {
InputStream in = Main.class.getClassLoader().getResourceAsStream(
"com/file/loader/data.txt");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4730 次 |
| 最近记录: |