Print流

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fighting123678/article/details/84260653

1、打印流没有输入,只有输出

 

(1)out是System类中公有的静态成员,可以直接通过.访问,System.out是PrintStream类型的


1、实例1:TestPrintStream:

import java.io.*;

/*功能:利用PrintStream直接往文件中打印数据。*/
public class TestPrintStream 
{
	public static void main(String[] args) 
	{
		PrintStream ps=null;
		try
		{
			FileOutputStream fos=new FileOutputStream("a.dat");
			ps=new PrintStream(fos);//不是向控制台中打印,而是通过输入,向文件中打印
			ps.println("中华人民共和国");
			ps.println("Hello,China!");
		}
		catch(IOException e)
		{
			e.printStackTrace();
		}
		finally
		{
			ps.close();
		}
	}
}

 

(1)打印流不是向控制台中打印,而是通过fos向文件中打印

(2)


2、实例2:TestRedirect

—把字符写到文件中去

import java.io.*;

/*
 * 重定向的使用
 * 功能:将特定编码的Unicode字符写入文件
 * */

public class TestRedirect 
{
	public static void main(String[] args) 
	{
		PrintStream ps=null;
		try
		{
			FileOutputStream fos=new FileOutputStream("redirect.txt");
			ps=new PrintStream(fos,true,"utf-8");
			/*
			 * PrintStream中有构造方法,可以有三个参数的构造方法
			 * 第一个创建一个OutputStream
			 * 第二个是是不是自动的刷新、缓冲、清空
			 * 第三个指定输出的字符是什么编码格式
			 * */
			if(ps!=null)
			{
				System.setOut(ps);//重定向
			}
			
			int line=0;
			for(char c=100;c<=200;c++)
			{
				System.out.println();//此时通过FileOutputStream这个流往redirect.txt这个文件中输出
				line=0;
			}
		}
		catch(IOException e)
		{
			e.printStackTrace();
		}
		finally
		{
			if(ps!=null)
			{
				ps.close();
			}
		}
	}
}

(1)PrintStream中有构造方法,可以有三个参数的构造方法,第一个创建一个OutputStream,第二个是是不是自动的刷新、缓冲、清空,第三个指定输出的字符是什么编码格式

(2)System类中有setOut方法,原来用的是out,是一个公有静态成员,类型是PrintStream类型的。现在有一个新的PrintStream,setOut把System.out引用指向对象改成我现在的ps,下面再调用print和println的时候,此时是通过PrintStream这个流,向redirect.txt中输出,不再向控制台中输出。

(3)最终结果是,将字符写到redirect.txt这个文件中了

猜你喜欢

转载自blog.csdn.net/fighting123678/article/details/84260653