PrintWriter未输出到文件

时间:2017-10-02 07:33:16

标签: java file io printwriter

每当运行下一段代码时,我都会创建新的csv文件,但是我没有写任何内容:

PrintWriter fout     = null;

    try {

         // create file
        fout= new PrintWriter("EEGLogger.csv");
        String headerFile = "IED_COUNTER, IED_INTERPOLATED, IED_RAW_CQ, IED_AF3, IED_F7, IED_F3, IED_FC5, IED_T7, " +
                            "IED_P7, IED_O1, IED_O2, IED_P8, IED_T8, IED_FC6, IED_F4, IED_F8, IED_AF4, " + 
                            "IED_GYROX, IED_GYROY,IED_TIMESTAMP";
        // Writes the header to the file
        fout.println(headerFile);
        fout.println();
      ...

我在fout.close()语句中执行finally,但这仍无法帮助获取文件的任何输出。这里有什么想法吗?

2 个答案:

答案 0 :(得分:1)

或者:

  1. 您正在查找错误的位置,即当前工作目录或
  2. 您没有对当前工作目录的写入权限。
  3. 如果您使用了FileWriter而没有使用IOException,那将排除(2)。

    我本周在这里看到了大约一百万条答案和评论,声称当前的工作目录等于JAR文件的位置,但它没有。

答案 1 :(得分:-2)

您可以打开FileWriter

fout = new PrintWriter(new FileWriter("EEGLogger.csv"));
...
fout.flush();
fout.close()

我相信PrintWriter用于格式化和字符编码。 api docs states Prints formatted representations of objects to a text-output stream以及Methods in this class never throw I/O exceptions

使用FileWriter作为参数将强制您处理可能发生的任何IOException,因此如果文件未创建或不可写,您将立即获得此信息。

如果创建了文件并且您只是在不正确的位置查找文件,则可能发生另一种情况。我也建议创建一个File对象,以查看文件所在的位置(您的实际工作目录是什么)

File f = new File("EEGLogger.csv");
fout = new PrintWriter(new FileWriter(f));
System.out.println(f.getAbsolutePath());