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

javase-IO流-缓冲流

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

javase-IO流-缓冲流

带有缓冲区的字符流,使用这个流的时候不需要自定义char数组或者byte数组,自带缓冲,并且可以一行一行读写。,但是在读取数据的时候是不会读取换行符的。
我们用到的缓冲流有BufferdeReader,BufferedWriter,BufferedInputStream,BufferedOutputStream。
下面我们来演示使用BufferdeReader来按照每一行来读取文件:

public class ReadLine{
   public static void main(String[] args) {
        FileReader fr = null;
        BufferedReader br = null;
        try {
            fr = new FileReader("D:aaa.txt");
            br = new BufferedReader(fr);
            String str;
            while ((str = br.readLine()) != null){
                System.out.println(str);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(br != null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

对于包装流来说的话,只需要关闭最外层的流即可。
如果使用的是字节流来一行一行来读取的话,我们需要使用转换流来将字节流转成字符流。转换流的作用就是将字节流转化成字符流,InputStreamReader,OutputStreamriter

public class ReadLine{
    public static void main(String[] args) {
        FileInputStream fis = null;
        InputStreamReader isr = null;
        BufferedReader br = null;
        try {
            fis = new FileInputStream("D:aaa.txt");
            isr = new InputStreamReader(fis);
            br = new BufferedReader(isr);
            String str;
            while ((str = br.readLine()) != null){
                System.out.println(str);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(br != null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

我在这里之所以讲解这个,主要就是我们在平时的笔试中都是会遇到按照一行一行来进行输入的,下面就来列举两种我们在笔试的时候遇到的输入输出的问题。
这一种方式是一个数据一个数据来进行读取的,我们的第一行一般都是说的下面会输入几个数据。什么类型的数据就使用scanner.nextxxx()来获取

public class IOTest{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            String str = scanner.next();
            int aa = scanner.nextInt();
            double bb = scanner.nextDouble();
            boolean cc = scanner.nextBoolean();
            System.out.println(str);
            System.out.println(aa);
            System.out.println(bb);
            System.out.println(cc);
        }
    }
}

第二种方式就是一行一行来进行读取的,就是和上面那个差不多,直接使用scanner.nextLine来进行读取。

public class IOTest{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            String str = scanner.nextLine();
            System.out.println(str);
        }
    }
}

以上是我关于IO流中缓冲流的认识,如有错误或者侵权的地方,请联系我改正或者删除。欢迎大家和我一起探讨关于java和算法的知识。

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

版权所有 (c)2021-2022 MSHXW.COM

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