导出为Java中的CSV文件
我正在尝试使用CSV导出数据。我不是一个高级程序员,所以在帮助别人的时候最好记住这一点;)
我很困惑为什么它拒绝我的访问,也不知道如何修复它
package Testing;
import java.io.FileWriter;
import java.io.IOException;
public class Testing
{
public static void main(String [] args)
{
generateCsvFile("c:\\test.csv");
}
private static void generateCsvFile(String sFileName)
{
try
{
FileWriter writer = new FileWriter(sFileName);
writer.append("DisplayName");
writer.append(',');
writer.append("Age");
writer.append('\n');
writer.append("MKYONG");
writer.append(',');
writer.append("26");
writer.append('\n');
writer.append("YOUR NAME");
writer.append(',');
writer.append("29");
writer.append('\n');
writer.flush();
writer.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
我得到了一个衰减错误:
java.io.FileNotFoundException: c:\test.csv (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileWriter.<init>(Unknown Source)
at Testing.Testing.generateCsvFile(Testing.java:17)
at Testing.Testing.main(Testing.java:10)
感谢所有能帮忙的人
# 1 楼答案
此访问被拒绝消息是从操作系统发送到Java的。因此,操作系统不允许java程序访问该文件。这可能是因为多种原因,包括
C:\
C:\test.csv
test.csv
正在从另一个程序编辑李>首先,我会将文件写入当前目录(程序运行的地方)或用户主页(Win 7+上的^{)。用户主页可以通过
System.getProperty("user.home")
通过编程获得而且,
C:\
只存在于Windows上,所以硬编码这不是一个好主意。使用user.home
属性或外部化文件位置(从属性文件中获取文件名。通过这种方式,您可以更改不同操作系统的位置)# 2 楼答案
由于权限问题,您通常无法在root
C:\
文件夹中写入/创建文件尽管你可以随意在主目录中写入/创建文件。以下解决方案应该可以跨操作系统工作
你也可以写信到你的
temp
文件夹如果要在根目录中创建文件,请按照以下说明操作 http://www.mkyong.com/computer-tips/cant-create-file-in-the-c-drive-root-directory-windows-8/
免责声明,无法测试,因为我没有Windows 8