PrintWriter类是首选的用于写入一个文本文件的流类。
1).IOException
处理文件I/O时,程序很多时候可能会抛出某个类(如FileNotFoundException类)的异常,这些不同的异常类很多是IOException类的子孙类,IOException类是与输入和输出有关的各种异常类的根类。
2).PrintWrite类的方法
-
public PrintWriter(OutputStream streamObject)
Print Writer类没有以文件名为自变量的构造方法。
如果想要用文件名来创建一个流,则使用以下语句:
new PriteWriter(new
FileOutputStream(File_Name));
这样创建一个空白文件,若文件存在,则清空文件内容。
如果想要在已经存在的文件中进行写操作(若找不到该文件,则以该文件名创建一个新空白文件),则使用一下构造语句:
public PrintWriter(new FileOutputStream(File_Name,true));
以上PrintWriter类构造方法的调用,可能会由于文件名的格式错误、文件名与系统中的其他文件重名而抛出FileNotFoundException异常。
-
public void println()
输出任意内容并换行。(若输出的是对象,则对象需要正确定义一个toString方法)
-
public void print()
与println方法类似但不换行。
-
publif PrintWriter printf();
与System.out.printf方法类似,区别在于此方法将输出发送到一个文本文件,为不是屏幕,他返回主叫对象。
-
public void close()
关闭流与文件的连接。该方法再关闭文件前调用fiush方法。
-
public void flush();
刷新输出流。这将任何已被缓冲的但还没有实际写入文件的数据强制写入文件。一般情况我们不调用该方法。
3).与文件相连接的输出流通常被缓冲,这就意味着程序并非尽快地实际写入输出数据的每个实例,而是把数据保存在一个称为缓存区的临时储存单元,当积累足够的数据,把数据真正的写入文件中,这么做可提升效率。
4).用于文件输入输出的类,都有一个名为close的方法,如果程序在结束运行前没有关闭与流连接的输入输出文件,系统会自动关闭,但我们应该显示地手动调用该方法。
因为:
如果程序异常地结束运行,Java不可能为我们关闭文件,而且可能会毁坏文件。
如果程序写入一个文件,而后又从该文件读取数据,则必须在关闭文件重新打开后才能进行读操作。
import
java.io.PrintWriter;
import
java.io.FileOutputStream;
import
java.io.FileNotFoundException;
/**
* @author 爱哭的周小姐
*
* 把数据输出到文本文件
*
*/
public class TextFileOutputDemo
{
public static void main(String[] args)
{
PrintWriter outputStream=null;
try
{
outputStream=new PrintWriter(new FileOutputStream("asdf.txt"));
}
catch(FileNotFoundException e)
{
System.exit(0);
}
outputStream.println("你好!");
outputStream.close();
}
}