【JAVA】学习路径35-InputStream使用例子

Posted on 2022-04-13 18:10  罗芭Remoo  阅读(91)  评论(0编辑  收藏  举报
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class IOtest01 {
    public static void main(String[] args) {

        //抽象基类 InputStream OutputStream
        //从硬盘里面读取       写到硬盘里面去
        //字节流 文本流
        testInput();
    }
    public static void testInput(){
        FileInputStream inputStream = null;
        try {
            inputStream = new FileInputStream("demo001");
//            int a = inputStream.read();
//            //System.out.println(a);//这样读取返回的是第一个字符的ASCII值
//            System.out.println((char)a);
//
//            a = inputStream.read();
//            System.out.println((char)a);
//            a = inputStream.read();
//            System.out.println(a);//当文件读取完了,就会输出-1

//            int a=0;
//            while((a = inputStream.read()) != -1){
//                System.out.print((char)a);
//            }
//            //注意,这种方法最好不要读取中文,字节流处理中文不方便。

            //使用字节数组读取字节流
            byte a[] = new byte[4];

            while(true){//上面一个循环更为高明简洁,这里是为了展示多种方法。
                int length = inputStream.read(a);
                if(length == -1)
                    break;
//                for (int i=0;i<length;i++){
//                    System.out.print((char)a[i]);
//                }
                String str = new String(a,0,length);//指定区间
                System.out.print(str);
            }


        }catch (FileNotFoundException e){
            e.printStackTrace();
        }catch (IOException ee){
            ee.printStackTrace();
        }finally{
            try {
                inputStream.close();
            }catch (Exception eee){
                eee.printStackTrace();
            }
        }

        System.out.println("结束运行");

    }
}