簡體   English   中英

用Java導出到CSV文件

[英]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程序(由操作系統)訪問該文件。 這可能是由於多種原因,包括

  • 運行Java程序的用戶無權訪問C:\\
  • 運行Java程序的用戶無權訪問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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM