Java IO流

IO的分类

按照数据类型分为:

  字节流

  字符流

按照流向分为:

  输入流

  输出流

字符流

输入流Reader

Reader reader = new FileReader(file)); 
int i; // 用于存储读取的字符
char[] chars=new char[2]; while ((i=reader.read()) != -1) { // 读取一个字符,-1 表示文件末尾   System.out.print((char) i); // 将字符转换为 char 并打印 }

输出流Writer

        File file = new File(path);
        Writer writer=null;
        try {
            writer = new FileWriter(file);//覆写
            //writer= new FileWriter(file, true);//追加写入
            char[] c = {'a', 'b', 'c'};
            writer.write("hello\r\n");//写入字符串
            writer.write(c, 0, 3);//写入字符的一部分,这里表示从0开始,取长度为3
            writer.write("test\r\n");//使用\r\n来换行
            //write.flush();刷新缓冲区
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            try {
                if (writer != null) {
                    writer.close();//刷新缓冲区,释放资源,流对象不能够再使用
                }
            }catch (IOException e) {
                e.printStackTrace();
            }
        }    

 字节流

字节输入流InputStream

        InputStream in = null;
        File file = new File(path);
        try {
            //创建字符输入流的对象
            in = new FileInputStream(file);
            //创建一个字节的数组
            byte[] bs = new byte[1024];
            int len = -1;
            while((len = in.read(bs)) != -1){
                String s = new String(bs, 0 , len);
                System.out.print(s);//读取的内容
            }
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
            if(in!=null) {
                in.close();//释放资源
            }
            }catch (IOException e) {
                e.printStackTrace();
            }
        }    

字节输入流OutputStream

        //创建OutputStream流对象
        OutputStream outputStream = null;
        File file = new File(path);
        try {
            outputStream = new FileOutputStream(file);
            //写入对应ASCII码对应的内容
            //outputStream.write(33);
            byte[] bs = {'a','b','c'};
            //outputStream.write(bs);
            //写入bs中的内容
            outputStream.write(bs, 0, 2);
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                if(outputStream!=null) {
                    outputStream.close();//释放流资源
                }
            }catch (IOException e) {
                e.printStackTrace();
            }
        }    

 

 

 

  

posted @ 2025-02-13 16:29  茴香儿  阅读(7)  评论(0)    收藏  举报