我使用此引用来读取我的项目上的文件。 但是我需要存储同样我不知道该怎么做? 请帮助我。
为了读取文件,我从链接中获取了代码
InputStream csv =
SomeClassInTheSamePackage.class.getResourceAsStream("filename.csv");
像这样,任何人都可以帮我写一个文件
目前我正在使用以下代码:
Writer output = null;
output = new BufferedWriter(new FileWriter("./filename.csv"));
但它在运行时抛出 FileNotFound 异常
问题在于查找文件路径。 如果我给出绝对路径,它可以正常工作。 但它需要在任何计算机上运行
FileWriter 将根据需要创建文件。它不必已经存在。
收到此错误的唯一方法是当前工作目录不再存在,或者您没有在该目录中创建文件的权限。
检查您的权限:
Writer output = null;
if (new File("./filename.csv").canWrite()) {
System.out.println("You have not permissions");
} else {
output = new BufferedWriter(new FileWriter("./filename.csv"));
...
}
好的。使用以下代码获取文件的路径:
String path = System.getProperty("user.dir");
FileWriter fw = new FileWriter(path+File.separator+"filename.csv");
编辑
这是一个演示代码,用于在包myPackage
中创建文件"pqr.txt"
。鉴于我正在使用命令java myPackage.AccessCheck
即从mypackage上方的一个目录执行类文件。
package myPackage;
import java.io.FileWriter;
import java.io.File;
public class AccessCheck
{
protected void callme()
{
try
{
String name = System.getProperty("user.dir")+File.separator+AccessCheck.class.getPackage().getName()+File.separator+"pqr.txt";
System.out.println(name);
FileWriter fw = new FileWriter(name);
}catch(Exception ex){ex.printStackTrace();}
}
public static void main(String st[])
{
AccessCheck asc = new AccessCheck();
asc.callme();
}
}
不要调用getResourceAsStream()
,而是调用class.getResource()
或classLoader.getResource()
。这些函数返回一个 URL,提供资源的位置。如果资源是文件系统上的纯文件,则 URL 将是file:
URL。
获得 URL 后,可以将其转换为URI
并将其传递给采用 URI 的File
构造函数。然后,您可以使用 File
对象打开该文件。
请注意,getResource()
可以返回 File
构造函数无法处理的 URL。例如,如果在 jar 文件中找到资源,则 URL 可能如下所示:
jar:file:/C:/path/to/JDK/lib/vm.jar!/java/lang/Object.class
File
构造函数无法处理这样的 URL。这可能是也可能不是您的问题。