使用Java文件i / o

时间:2014-05-31 23:32:11

标签: java file-io

所以我有c ++的背景,我正在努力学习java。一切都非常相似。我有文件i / o的问题。因此,我正在搞乱并做一些非常简单的程序来获得基本的想法。这是我将数据写入文件的代码。我的代码生成一个文件,但是当我打开文件时它是空的并且不包含我告诉它写的字符串。

 package practice.with.arrays.and.io;

 import java.io.IOException;
 import java.io.PrintWriter;

 public class PracticeWithArraysAndIO 
 {

 public static void main(String[] args) throws IOException
  {
    //Declaring a printWriter object
    PrintWriter out  = new PrintWriter("myFile.txt");

    out.println("hello");
 }

 }

1 个答案:

答案 0 :(得分:4)

输出被缓冲,需要flush()来写入文件。

package practice.with.arrays.and.io;

import java.io.IOException;
import java.io.PrintWriter;

public class PracticeWithArraysAndIO {

    public static void main(String[] args) {
        PrintWriter out = new PrintWriter("myFile.txt");
        out.println("hello");
        out.flush();
    }

}

但是你不需要明确地进行冲洗,因为无论如何当你close()作家时你都应该这样做。

package practice.with.arrays.and.io;

import java.io.IOException;
import java.io.PrintWriter;

public class PracticeWithArraysAndIO {

    public static void main(String[] args) {
        PrintWriter out = new PrintWriter("myFile.txt");
        try {
            out.println("hello");
        } finally {
            out.close();
        }
    }

}

但是您也不需要显式关闭,因为PrintWriter实现了AutoCloseable,因此您可以使用Java 7的自动资源管理:

package practice.with.arrays.and.io;

import java.io.IOException;
import java.io.PrintWriter;

public class PracticeWithArraysAndIO {

    public static void main(String[] args) {
        try (PrintWriter out = new PrintWriter("myFile.txt")) {
            out.println("hello");
        }
    }

}