特殊操作流
标准输入输出流
System类有两个静态的成员变量:
public static final InputStream in:标准输入流,通常对应与键盘输入或由主机环境指定的另一个输入源
//字节输入流
InputStream is = System.in;
/* 实现字节的持续输入
int by;
while((by= is.read())!= -1){
System.out.println((char)by);
}*/
// 用转换流把字节流转成字符流
InputStreamReader isr = new InputStreamReader(is);
//使用字符流实现一次读一行数据(字符缓冲输入流读特有方法)
BufferedReader br = new BufferedReader(isr);
//实现按行的字符的输入
String str = br.readLine();
System.out.println("看这里" + str);
//可以用Scanner实现各种类型数据的输入
Scanner sc = new Scanner(System.in);
public static final PrintStream out:标准输出流
将功能添加到另一个输出流,即能够方便地打印各种数据值的表示;
输出语句的本质,是一个标准的输出流
PrintStream ps = System.out;
PrintStream类的方法,System.out都可以使用
打印流
有自己的特殊方法
PrintStream字节打印流
PrintStream(String fileName):使用指定的文件名创建新的打印流
使用继承父类的方法写数据,查看的时候会转码;
使用自己的特有方法写数据,查看的数据原样输出。
PrintWriter字符打印流
代码实例
//自动刷新输入的数据
PrintWriter pw = new PrintWriter(new FileWriter("1215/file.txt"),true);
pw.write("haha");
pw.println("zenmebamn");
复制文件代码实例:
BufferedReader br = new BufferedReader(new FileReader("1215/file.txt"));
//创建字符打印流
PrintWriter pw = new PrintWriter(new FileWriter("1215/file2.txt"),true);
String line;
while((line = br.readLine())!= null){
pw.println(line);
}
br.close();
pw.close();
对象序列化流和反序列化流
对象序列化:将对象保存到磁盘中,或在网络中传输
对象序列化流:ObjectOutputStream,该对象所属的类需要实现Serializable接口,这是一个标记接口,不需要重写方法;
对象反序列化:从文件中读取回来,重构对象;
对象反序列化流:ObjectInputStream
可以反序列化ObjectOutputstream写的对象
Properties-Map体系的集合类,可以保存在流中,也就是可以和文件中的内容联动
可以保存到流中或从流中加载。 属性列表中的每个键及其对应的值都是一个字符串;不是一个泛型类;
void store(OutputStream out/Writer writer,String comments)把properties表中的内容写入字节流对应的文件中,后适合使用void load方法的格式用输出流写入properties表中;