Java PrintStream类

定义

public PrintStream(OutputStream out)
public PrintStream(OutputStream out,boolean autoFlush)
public PrintStream(OutputStream out,boolean autoFlush,String encoding)
public PrintStream(String fileName)
public PrintStream(String fileName,String csn)
public PrintStream(File file)
public PrintStream(File file,String csn)

参数

out:要将值和对象打印到的输出流。

autoFlush:如果为true,则每当写入字节数组,调用println方法之一或写入换行符或字节('\ n')时,都会刷新输出缓冲区。

fileName:用作此打印流目标的文件名。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将被写入文件并被缓冲。

csn:支持的字符集

异常

FileNotFoundException:无法创建或者操作文件

SecurityException:无权限操作此文件

UnsupportedEncodingException:无法支持的字符集

方法

//将指定的字节写入管道输出流。
public void write(int b)
public void write(byte[] b,int off,int len)

将指定的字节写入此字节数组输出流,此方法继承于OutputStream,可以参考OutputStream.write

public void println()打印并且自动加上换行符

PrintStream.print()也是打印数据,和println差不多,也可以输入java基本类型的数据,只不过是不会自动加上换行符。print和printin底层都是调用了write方法,基本上都差不多。

//追加数据到输出流
public PrintStream append(char c)
public PrintStream append(CharSequence csq,int start,int end)
public PrintStream append(CharSequence csq)
//关闭输出流
public void close()
//刷新输出流
public void flush()

例子

public static void main(String[] args)
{
    PrintStream ps = null;
    try
    {
        FileOutputStream fos = new FileOutputStream("G:/51gjie.txt");
        ps = new PrintStream(fos);
    }
    catch(Exception e)
    {
    }
    if(ps != null)
    {
	//将输出定向到文件
        System.setOut(ps);
	//系统打印用PS输出
	System.out.println("hello www.51gjie.com");
    }
}

1. PrintStream流有自动刷新机制,例如当向PrintStream流中写入一个字节数组后自动调用flush()方法。

2. PrintStream将基本的数据类型的数据或引用数据类型的对象格式化成字符串后再输出。使用该类不必书写转化成字符串的操作方法,可以直接输出。

3. PrintStream可以通过setOut()改变System.out不用打印到控制台,而且转到其他媒介。

4. PrintStream一般用得比较少,它能做的PrintWriter也都能实现,并且PrintWriter的功能更为强大,所以可以替代。