[英]Exporting to a CSV File in Java
我正在嘗試使用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)
感謝任何可以提供幫助的人。
由於權限問題,通常無法在根C:\\
文件夾中寫入/創建文件。
盡管您可以隨意在主目錄中寫入/創建文件。 以下解決方案應可跨操作系統使用。
generateCsvFile(System.getProperty("user.home") + "test.csv");
您還可以寫入您的temp
文件夾。
generateCsvFile(System.getProperty("java.io.tmpdir") + "test.csv");
如果要在“根”目錄中創建文件,請按照以下說明進行操作:http://www.mkyong.com/computer-tips/cant-create-file-in-the-c-drive-root-directory-windows -8 /
免責聲明,由於我沒有Windows8,因此無法測試。
此拒絕訪問消息是從操作系統到Java。 因此,不允許Java程序(由操作系統)訪問該文件。 這可能是由於多種原因,包括
C:\\
C:\\test.csv
test.csv
。 我將從將文件寫入當前目錄(運行程序的位置)或用戶主目錄(在Win 7+上為C:\\users\\userName\\AppData
)開始。 可以通過System.getProperty("user.home")
以編程方式獲取用戶主目錄
另外, C:\\
僅在Windows上存在,因此對它進行硬編碼不是一個好主意。 使用user.home
屬性或外部化文件位置(從屬性文件獲取文件名。這樣,您可以更改不同操作系統的位置)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.