我正在尝试使用 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)
感谢任何可以提供帮助的人。
最佳答案
此访问被拒绝消息是从操作系统到 Java 的。因此,(操作系统)不允许 java 程序访问该文件。这可能是由于多种原因,包括
- 运行 java 程序的用户无权访问
C:\
- 运行 java 程序的用户无权访问
C:\test.csv
test.csv
正在从另一个程序进行编辑。
我会先将文件写入当前目录(从程序运行的位置)或用户主目录(在 Win 7+ 上为 C:\users\userName\AppData
) .可以通过 System.getProperty("user.home")
此外,C:\
仅存在于 Windows 上,因此硬编码这不是一个好主意。使用 user.home
属性或外部化文件位置(从属性文件中获取文件名。这样您可以更改不同操作系统的位置)
关于java - 用 Java 导出到 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23257369/