0

我已使用此参考来读取我项目中的文件。但我需要同样存储我不知道该怎么做?请帮我。

为了读取文件,我从链接中获取了代码

InputStream csv = 
             SomeClassInTheSamePackage.class.getResourceAsStream("filename.csv");

像这样任何人都可以帮我写一个文件

目前我正在使用此代码:

 Writer output = null;
 output = new BufferedWriter(new FileWriter("./filename.csv"));

但它在运行时抛出 FileNotFound Exception

问题在于定位文件路径。如果我给出绝对路径,它工作正常。但它需要在任何计算机上运行

4

4 回答 4

0

FileWriter 将根据需要创建文件。它不必已经存在。

出现此错误的唯一方法是当前工作目录不再存在或您无权在该目录中创建文件。

于 2013-01-31T17:40:58.910 回答
0

检查您的权限:

Writer output = null;
if (new File("./filename.csv").canWrite()) {
   System.out.println("You have not permissions");
} else {
   output = new BufferedWriter(new FileWriter("./filename.csv"));
   ...
}
于 2013-01-31T17:41:32.413 回答
0

OK..使用以下代码获取文件路径:

String path = System.getProperty("user.dir");
FileWriter fw = new FileWriter(path+File.separator+"filename.csv");

编辑

这是一个"pqr.txt"在 package中创建文件的演示代码myPackage。鉴于我正在使用命令执行类文件,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();
    }
}
于 2013-01-31T17:59:00.637 回答
0

而不是调用getResourceAsStream(),调用class.getResource()classLoader.getResource()。这些函数返回一个给出资源位置的 URL。如果资源是文件系统上的普通文件,则 URL 将是file:URL。

获得 URL 后,您可以将其转换为 aURI并将其传递给File采用 URI 的构造函数。然后您可以使用该File对象打开文件。

请注意,它getResource()可以返回File构造函数无法处理的 URL。例如,如果在 jar 文件中找到资源,则 URL 可能如下所示:

jar:file:/C:/path/to/JDK/lib/vm.jar!/java/lang/Object.class

File构造函数不能处理这样的 URL 。这可能会或可能不会让您担心。

于 2013-01-31T20:20:59.307 回答