打印流 -可将数据写入文件/可改变输出方向
打印流
-
java.lang.Object
继承者 java.io.OutputStream
继承者 java.io.FilterOutputStream
继承者 java.io.PrintStream -
与其他输出流不同,PrintStream 永远不会抛出 IOException; 打印的所有字符都使用平台的默认字符编码转换为字节。有很多OutputStream的成员方法
-
构造方法:
- PrintStream(File file)
输出的目的地是一个文件; - PrintStream(File file, String csn)
创建具有指定文件名称和字符集且不带自动行刷新的新 - PrintStream(OutputStream out)
输出的目的地是一个字节输出流; - PrintStream(OutputStream out, boolean autoFlush)
创建新的打印流。 - PrintStream(OutputStream out, boolean autoFlush, 1. String encoding)
创建新的打印流。 - PrintStream(String fileName)
输出的目的地是一个文件路径; - PrintStream(String fileName, String csn)
创建具有指定文件名称和字符集且不带自动行刷新的新打印流。
- PrintStream(File file)
-
注:如果使用Writer方法写数据,查看数据时会查询编码表,如写入97,查看为a;若使用print方法写数据,则会原样输出。
package objectStream;
import java.io.FileNotFoundException;
import java.io.PrintStream;
public class PrintStreamTest {
public static void main(String[] args) throws FileNotFoundException {
//1.创建打印流对象,绑定输出文件路径,实际调用FileOutputStream
PrintStream printStream = new PrintStream("b.txt");
//2.使用writer方法测试,文件写入的是a,缺陷只能写入整数,但可以用print
printStream.write(97); //a
//3.文件写入的是97
printStream.print(97); //a97
//写入后换行
printStream.println("你好呀"); //a97你好呀
//释放资源
printStream.close();
}
}
特点
-
特点:可以使用System.setOut方法改变输出语句目的地(打印流方向)
-
static void setOut(PrintStream out) - 重新分配标准输出流
package objectStream;
import java.io.FileNotFoundException;
import java.io.PrintStream;
public class PrintStreamTest {
public static void main(String[] args) throws FileNotFoundException {
System.out.println("控制台输出");
//创建打印流对象,绑定要输出的文件路径
PrintStream printStream = new PrintStream("b.txt");
//改变打印流输出方向,写入的是文件
System.setOut(printStream);
System.out.println("目的地改变,放入b.txt文件中");
//释放资源
printStream.close();
}
}