Java的字节流

Java的字节流

字节输入流

package com.cnblogs;

import java.io.*;

/*
本类用于测试字节流的读取
 */
public class TestIn {
    public static void main(String[] args) {
//        method();//普通读取
        method2();//高效

    }

    private static void method() {
        InputStream in = null;
        try {
//            InputStream in2 = new FileInputStream(new File("E:\\ready\\1.txt"));
            in = new FileInputStream("E:\\ready\\1.txt");
            /*
            一次读取一个字节,如果没有数据了,返回-1
             */
//            System.out.println(in.read());//97
//            System.out.println(in.read());//98
//            System.out.println(in.read());//99
//            System.out.println(in.read());//-1
//            System.out.println(in.read());//-1
            int result = 0;
            while ((result = in.read()) != -1){
                System.out.println(result);
            }
        } catch (Exception e) {
            e.printStackTrace();
            /*
            finally代码块是try-catch结构中一定会执行到的部分,
            常用于关流操作,为防止因发生异常没有正确关流,不能写在try{}
            当中,这点需要注意
             */
        }finally {
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private static void method2() {
        BufferedInputStream in1 = null;
        try {
            in1 = new BufferedInputStream(new FileInputStream("E:\\ready\\1.txt"));
            int result = 0;
            while((result = in1.read()) != -1){
                System.out.println(result);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                in1.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

字节输出流

package com.cnblogs;

import java.io.*;

/*
本类用于测试字节输出流
 */
public class TestOut {
    public static void main(String[] args) {
//        method();
        method2();
    }

    private static void method() {
        OutputStream out = null;
        try {
            out = new FileOutputStream("E:\\ready\\1.txt",true);
            out.write(98);
            out.write(99);
            out.write(100);
            /*
            还可以使用两个参数的构造方法,来控制输出的数据是覆盖还剩追加,
            默认为false,覆盖
            如果为追加,第二个参数为true
             */
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                out.close();//关流后没法写入了
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private static void method2() {
        OutputStream out = null;
        try {
            out =new BufferedOutputStream(new FileOutputStream("E:\\ready\\1.txt",true)) ;
            out.write(101);
            out.write(102);
            out.write(103);
            out.write(104);
            out.write(105);
            /*
            还可以使用两个参数的构造方法,来控制输出的数据是覆盖还剩追加,
            默认为false,覆盖
            如果为追加,第二个参数为true
             */
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                out.close();//关流后没法写入了
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

上一篇:空字符串的比较,空指针异常。java将Strin该类型的“null”转换为空,java反射获取对象的所有属性并判断再赋值


下一篇:JAVA中不要用e.printStackTrace()