java - 用 Java 导出到 CSV 文件

标签 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)

感谢任何可以提供帮助的人。

最佳答案

此访问被拒绝消息是从操作系统到 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/

相关文章:

java - 如何为 ButtonGroup setSelected(其中所有 JRadioButton 都是在循环中创建的)?

使用 Robot 类的 Java 机器人

python - 在第 1 列中查找精确的单元格值并将第 2 列的值连接到新列中

java - Liquibase 日志级别更改

java - 将 BigDecimal 舍入为整数值

.net - 在 Fsharp 中将 XML 文件转换为 CSV 文件

mysql - 如何使用字符串中的引号将数据从 CSV 导入 MySQL?

ruby - 如何在许多匹配项中使用 ruby​​ gsub Regexp?

Java:是否可以打开一个文件进行写入,但如果文件已经存在则爆炸?

c# - 拆分时间跨度并在 csv 中创建新字段