zoukankan      html  css  js  c++  java
  • JAVA 打印流与转换流

    转换流主要有两个 InputStreamReader 和 OutputStreamWriter

    1. InputStreamReader 主要是将字节流输入流转换成字符输入流

    2. OutputStreamWriter 主要是将字节流输出流转换成字符输出流

    打印流主要包含两个:PrintStream 和 PrintWriter,分别对应字节流和字符流

    完成屏幕打印的重定向

     System.out 对应的就是 PrintStream , 默认在输出在控制台,我们可以重定向他的输出,可以定向到文件

     也就是 执行 System.out.println("arry");  不输出到屏幕,而输出到文件 

    /*
        System.in 可以接收屏幕的输入
    
    */
    
    import java.io.*;
    
    public class PrintStreamTest02{
        
        public static void main(String[] args){
            
            BufferedReader br = null;
            
            try{
            
                InputStreamReader isr = new InputStreamReader(System.in);
                
                br = new BufferedReader(isr);
                
                String temp = null;
                while((temp = br.readLine()) != null){
                    System.out.println(temp);
                    // 如果输出 w 退出循环
                    if("w".equals(temp)){
                        break;    
                    }    
                }
            } catch(FileNotFoundException e){
                e.printStackTrace();    
            } catch(IOException e){
                e.printStackTrace();
            } finally{
                try{
                    if(br != null){
                        br.close();    
                    }
                }catch(IOException e){
                    e.printStackTrace();
                }
            }
        }
    
    }
    /*
    完成屏幕打印的重定向
    
        System.out 对应的就是 PrintStream , 默认在输出在控制台,我们可以重定向他的输出,
        可以定向到文件 就是 执行 System.out.println("hehhe");  不输出到屏幕,而输出到文件    
    
    */
    
    import java.io.*;
    
    public class PrintStreamTest01{
        
        public static void main(String[] args){
            
            FileOutputStream fos = null;
            
            try{
            
                fos = new FileOutputStream("C:\work\Java\arry.txt");
                
                PrintStream ps = new PrintStream(fos);
                
                System.setOut(ps);
                
                System.out.println("hehehe");
                
            } catch(FileNotFoundException e){
                e.printStackTrace();    
            } catch(IOException e){
                e.printStackTrace();        
            } finally{
                try{
                    if(fos != null){
                        fos.close();
                    }
                }catch(IOException e){
                    e.printStackTrace();    
                }
            }
        }
    
    }
     

    对象流可以将 Java 对象转换成二进制写入磁盘,这个过程通常叫做序列化,并且还可

    以从磁盘读出完整的 Java 对象,而这个过程叫做反序列化。

    对象流主要包括:ObjectInputStream 和 ObjectOutputStream

    如何实现序列化和反序列化

    /*
        OutputStreamWriter 主要是将字节流输出流转换成字符输出流
    */
    
    import java.io.*;
    
    public class OutputStreamWriterTest01{
        
        public static void main(String[] args){
            
            BufferedWriter bw = null;
            
            try{
                
                // 字节输出流
                //FileOutputStream fos = new FileOutputStream("C:\work\Java\arry.txt");
                // 字符输出流
                //OutputStreamWriter osw = new OutputStreamWriter(fos);
                
                bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:\work\Java\arry.txt")));
                
                bw.write("keke老师新婚快乐 !");
                bw.newLine();
                
                bw.write("祝福师傅和师娘 新婚快乐,百年好合,白头偕老,早生贵子 ! !!!!");
            
                bw.flush();
            
            } catch(FileNotFoundException e){
                e.printStackTrace();    
            } catch(IOException e){
                e.printStackTrace();    
            } finally{
                try{
                    if(bw != null){
                        bw.close();    
                    }
                } catch(IOException e){
                    e.printStackTrace();
                }
            }
        }
    
    }
    /*
        对象流:
        
            对象流可以将java对象转换成二进制写入磁盘,这个过程叫做“序列化”
            还可以从磁盘读取完整的Java对象,这个过程叫 “反序列化”
            
            包括:ObjectInputStream 和 ObjectOutputStream
    
        java.io.Serializable 
    
    */
    
    import java.io.*;
    
    public class ObjectStreamTest02{
        
        public static void main(String[] ags){
            
            ObjectInputStream ois = null;
            
            try{
                
                FileInputStream fis = new FileInputStream("C:\work\Java\arry.txt");
                
                ois = new ObjectInputStream(fis);
                
                // 反序列化
                Student stu = (Student)ois.readObject();
                
                System.out.println(stu.name);
                
                
            }catch(FileNotFoundException e){
                e.printStackTrace();    
            }catch(IOException e){
                e.printStackTrace();
            }catch(ClassNotFoundException e){
                e.printStackTrace();    
            } finally{
                try{
                    if(ois != null){
                        ois.close();    
                    }
                }catch(IOException e){
                    e.printStackTrace();            
                }
            }
            
        }
    
    }
    
    // 实现序列化接口
    class Student implements Serializable{
        String name;
    }

    如果实现序列化该类必须实现序列化接口 java.io. Serializable , 该接口没有任何方法, 该接口

    只是一种标记接口,标记这个类是可以序列化的

  • 相关阅读:
    [SUCTF 2019]EasySQL 1【BUUCFT】【SQL注入】
    [HCTF 2018]WarmUp 1【BUUCFT】【代码审计】
    [强网杯 2019]随便注 1 【BUUCFT】【SQL注入】
    网站如何做好防护
    【单片机】换行、回车
    【Win32】VC6 Visual C/C++ 6.0 修改程序图标
    【Win32】通过多线程自动关闭对话框的方法
    微服务demo
    Mac安装redis
    python---rsa加密根据指数和模生成加密参数模板
  • 原文地址:https://www.cnblogs.com/zengda/p/4346115.html
Copyright © 2011-2022 走看看