java输入输出(3)输入流

  1. java的输入输出流可以方便地实现数据的输入输出操作,在java中把不同的输入输出源(键盘,文件,网络连接)抽象地买描述成“流”,“流”可以分为字节流和字符流,字节流以字长为8位的字节为处理对象,字符流操作的是数据单元为16位的字符流。  “流”可以想象成一根水管,里面的数据可以想象成“水滴”,字节流的每一滴水滴为8位字长的字节,字符流位16位字长的字符流。
  2. 下面为一个简单的文件输入流处理实例,可以通过在实例化InputStream对象的时候传入具体的输入流,示例传入的是该java文件自身,具体的讲解穿插在代码中
    import java.io.FileInputStream;
    import java.io.IOException;
    
    public class FileInputStreamTest {
        public static void main(String args[]) throws IOException {
            FileInputStream fileInputStream = new FileInputStream("E:\\JavaProject\\FileOperatins\\src\\FileInputStreamTest.java");
            byte[] bbuf = new byte[1024];
            int hasRead = 0;
            int time = 0;
            while ((hasRead = fileInputStream.read(bbuf))>0){
    //            read(byte[]b)方法实现从指定输入流中读取长度为b.length的数据,并将其存入到数组b中,并且返回
    //            实际读取的字节数,这里的循环判断语句是确保读取到的字节长度大于零
                System.out.print(new String(bbuf, 0, hasRead));
                time++;
                System.out.println(hasRead);
            }
    
            fileInputStream.close();
    //        关闭流提高安全性
        }
    }
    //输出内容为:
    //        import java.io.FileInputStream;
    //        import java.io.IOException;
    //
    //public class FileInputStreamTest {
    //    public static void main(String args[]) throws IOException {
    //        FileInputStream fileInputStream = new FileInputStream("E:\\JavaProject\\FileOperatins\\src\\FileInputStreamTest.java");
    //        byte[] bbuf = new byte[1024];
    //        int hasRead = 0;
    //        int time = 0;
    //        while ((hasRead = fileInputStream.read(bbuf))>0){
    ////            read(byte[]b)方法实现从指定输入流中读取长度为b.length的数据,并将其存入到数组b中,并且返回
    ////            实际读取的字节数
    //            System.out.print(new String(bbuf, 0, hasRead));
    //            time++;
    //            System.out.println(hasRead);
    //        }
    //
    //        fileInputStream.close();
    ////        关闭流提高安全性
    //    }
    //}
    //
    //844
    

猜你喜欢

转载自blog.csdn.net/weixin_39452731/article/details/82078608