JavaIO流

按照处理的字节数

  • 字节流

  • 字符流

按照方向分类

  • 输入流

  • 输出流

按照功能

  • 节点流

  • 处理流

相关代码

    /**
     *     节点流-输出流
     */
    public static void output() {
        FileOutputStream fos = null;
        File file = new File("demo0609.txt");
        String str = "mark";
        if(!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        try {
            fos = new FileOutputStream(file);
            fos.write(str.getBytes());
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                fos.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    /**
     *     节点流-输入流
     */
    public static void input() {
        FileInputStream fis = null;
        File file = new File("demo0609.txt");
        int result = 0;
        try {
            fis = new FileInputStream(file);
            while((result=fis.read())!=-1) {
                System.out.println((char)result);
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                fis.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    /**
     *     处理流-输出流
     */
    public static void outputBuffered() {
        FileOutputStream fos = null;
        OutputStreamWriter osw = null;
        BufferedWriter bw = null;
        File file = new File("test.txt");
        if(!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        try {
            fos = new FileOutputStream(file);
            osw = new OutputStreamWriter(fos);
            bw = new BufferedWriter(osw);
            String[] a = {"sfds", "eeee"};
            for (int i = 0; i < a.length; i++) {
                bw.write(a[i]);
                bw.newLine();
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                bw.close();
                osw.close();
                fos.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    /**
     *     处理流-输入流
     */
    public static void inputBuffered() {
        FileInputStream fis = null;
        InputStreamReader isr = null;
        BufferedReader br = null;
        File  file = new File("test.txt");
        String result = "";
        try {
            fis = new FileInputStream(file);
            isr = new InputStreamReader(fis);
            br = new BufferedReader(isr);
            while((result=br.readLine())!=null) {
                System.out.println(result);
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public static void serializable() {
        OutputStream os = null;
        ObjectOutputStream oos = null;

    }

序列化和反序列化

类的对象会随着程序的终止而被垃圾收集器销毁。如果要在不重新创建对象的情况下调用该类,该怎么做?这就可以通过序列化将数据转换为字节流。 对象序列化是一个用于将对象状态转换为字节流的过程,可以将其保存到磁盘文件中或通过网络发送到任何其他程序;从字节流创建对象的相反的过程称为反序列化。而创建的字节流是与平台无关的,在一个平台上序列化的对象可以在不同的平台上反序列化。 需要实现序列化的对象要实现Serializable接口

    /**
     * 序列化
     */
    public static void serializable() {
        Student stu = new Student("123", "mark", 22);
        FileOutputStream fos = null;
        ObjectOutputStream oos = null;
        File file = new File("demo02.txt");
        try {
            fos = new FileOutputStream(file);
            oos = new ObjectOutputStream(fos);
            oos.writeObject(stu);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                oos.close();
                fos.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }
    /**
     * 反序列化
     */
    public static void unserializable() {
        FileInputStream fis = null;
        ObjectInputStream ois = null;
        File file = new File("demo02.txt");
        if(!file.exists()) {
            System.out.println("文件不存在");
            return;
        }
        try {
            fis = new FileInputStream(file);
            ois = new ObjectInputStream(fis);
            Object o = ois.readObject();
            if(o instanceof Student) {
                Student stu = (Student)o;
                System.out.println(stu.toString());
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                ois.close();
                fis.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }

MarkText 编写
JavaIO流

上一篇:JDBC 编程


下一篇:Java多线程 同步实现 同步代码块和同步方法