Io流InputStream

本文介绍使用Java中的字节流(FileInputStream)读取文件的不同方法,包括单个字节读取、字节数组读取及指定索引位置读取等技巧,并通过实例演示了如何处理常见的异常。
package inputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class Demo {
    
        public static void main(String[] args) {
            readerFile3();
            // System.out.println("done");
        }
        public static void readerFile() {
            //创建字节输入流的对象
            InputStream in  =null;
            /**
             * 字符流能办到的,字节流也能办到,
             * 字节流能办到的,字符流不一定能办到
             * 字节流能读取图片,视频各种二进制的东西
             */
            try {
    /**
     * 单个字节读取的效率很低
     */
            in = new FileInputStream("e.txt");
    
            
                int num = in.read();
                System.out.println(num);
                System.out.println((char)num);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                if(in!=null) {
                    try {
                        in.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }
        public static void readerFile1() {
            //创建字节输入流的对象
            InputStream in  =null;
            
            try {
    /**
     * 单个字节读取的效率很低
     */
            in = new FileInputStream("e.txt");
            
            byte[] bs = new byte[1024];
            int len = in.read(bs);
            System.out.println(new String(bs,0,len));
            
                
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                if(in!=null) {
                    try {
                        in.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }
        public static void readerFile3() {
            //创建字节输入流的对象
            InputStream in  =null;
            
            try {
    /**
     * 单个字节读取的效率很低
     */
            in = new FileInputStream("e.txt");
    
            byte[] bs = new byte[1024];
            //这里面穿的索引为1的话,就是往索引为1的地方放数据的,索引为0的地方为0,就是什么也没有,
            //所以用这三个参数的构造器,输入的时候是从哪开始,输出的时候也得从哪开始
            
            int len = in.read(bs, 1, 3);
            System.out.println(len);
            System.out.println(new String(bs,1,len));
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                if(in!=null) {
                    try {
                        in.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }
}

 

转载于:https://www.cnblogs.com/java-jiangtao-home/p/9374967.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值