栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

Java io流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java io流

什么是io流

平时我们文件的上传和下载都是需要io流

电脑上的所有文件,文档,音频,图片,视频 都可以读和写

缓冲的的概念

看视频有点卡,图片加载不出来,视频暂停一下,加载缓冲一下,图片等会看,加载缓冲一下

快递送到物流中转站,然后分批次的发。物流中转站就是缓冲的概念

IO流的本质就是对电脑文件的读和写

IO的分类

输入流分为两种:

        1.字节输入流        FileInputStream

        2.字符输入流

输出流分为两种:

        1.字节输出流        FileOutputString

        2.字符输出流

简单举一个例子

package com.xxx.xxx;

import java.io.*;

public class Demo2 {
    public static void main(String[] args) throws IOException {
        //1.创建File对象
        File file = new File("c:/a/bbb/2.txt");
        //2.创建字节输入流,将2.txt扔给fis对象
        FileInputStream fis = new FileInputStream(file);
        //3.创建字节缓冲流,fis又仍给了bis,现在咱们的数据在bis中
        BufferedInputStream bis = new BufferedInputStream(fis);
        //4.声明一个缓冲数组,将bis里面的数据读取出来,赋值给这个缓冲数组
        byte[] buf = new  byte[1024*4];//4096字节
        //5.开始使用read方法进行读取数据,读取的时候使用while循环
        //如果2.txt文件中的字节数超过了4096哥字节,需要用到循环
        int length;
        //相当重要,决定咱们的数据每次读取多少
        //length实际读取的字节数
        //固定写发
        while ((length = bis.read(buf))!=-1){
            //byte数组有值以后,打印一下看看
            System.out.println("嘿嘿嘿");
            //将字节数组转为字符串
            //并没有实际意义
            System.out.println(new String(buf,0,length));
        }
        //关流
        bis.close();
        fis.close();
    }
}

一共的步骤就只有五六步,而且是固定写法

字节输出流也是这样同样的,只是方法的名字改了一下而已,用法相同

字符输入流

FileReader:

是一个阅读字符文件的便利类,是专门处理字符文件的,比如txt文件。音频视频图片

牵涉到解码,底层是字节流,但是会解码为字符。如果解码失败就意味着咱们读取失败了

一般不会使用字符流操作图片 音频 视频等,因为牵涉到解码。会出问题!!!

这是一个简单的例子

package com.xxx.xxx;

import java.io.*;

public class Demo1 {
    public static void main(String[] args) throws IOException {
        //将c盘下面的aaa文件夹下面的1.txt文件的内容 读取到Java内存中
        //和字节流一模一样
        //1.新建一个File对象
        File file = new File("c:/aaa/1.txt");
        //2.新建FileReader  对象 字符输入流
        FileReader fr = new FileReader(file);
        //3.FileRFeader没有缓冲的效果,可以加上缓冲的效果
        //杂加?BufferedReader
        BufferedReader br = new BufferedReader(fr);
        //4.字节的缓冲数组 是字节
        //字符的缓冲数组  是字符
        char[] cbuf = new char[4];//缓冲区是4个字符
        //这个方法是用的!!!
        //5.	read(char[] cbuf) 将文件内容读取到字符数组中(缓冲区)
        int length = -1;
        
        while ((length = br.read(cbuf)) != -1) {
            System.out.println(length);
            //6.将数组展示到控制台
            System.out.println(new String(cbuf, 0, length));
        }

        //7.关闭流
        br.close();
        fr.close();

    }
}

字符输入流和字符输出流的方法都是差不多的,只是方法的名字不一样了

字符输入输出流中readLine();方法是读取文件的一行一行的取直到取完为止

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1039679.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号