JAVA学习-特殊操作流:标准输入输出流、打印流、对象序列化和反序列化流

特殊操作流

标准输入输出流

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表中;

猜你喜欢

转载自blog.csdn.net/weixin_52723971/article/details/111265575