设为首页 加入收藏

TOP

io流之【字节/字符缓冲流】(一)
2023-07-25 21:37:19 】 浏览:30
Tags:流之 字节 符缓冲

缓冲流,也叫高效流,是对4个基本的Filexxx流的增强,所以也是4个流,按照数据类型分类:

  • 字节缓冲流:BufferedInputStream,BufferedOutputStream
  • 字符缓冲流:BufferedReader,BufferedWriter

缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。

①字节缓冲流

 1 package com.Lucky.io.BufferStream;
 2 
 3 import java.io.*;
 4 
 5 /*
 6  字节缓冲流: 是字节流的高级流之一【效率比基础的字节流高的多】
 7  格式:       缓冲流  名称 = new 缓冲流(new 基础流)
 8              例如:    BufferedInputStream bufInStr=
 9                                new BufferedInputStream(new FileInputStream());
10 
11  */
12 
13 /**
14  * 其他的跟基础流一样【同样可以使用数组来进行一次读取多个字节】
15  */
16 public class byteBufferStream {
17     public static void main(String[] args) throws IOException {
18         BufferedInputStream bufInStr=
19                 new BufferedInputStream(new FileInputStream("H:\\项目\\javaSE\\IO\\src\\com\\Lucky\\io\\BufferStream\\bufferTest.txt"));
20         BufferedOutputStream bufOutStr=
21                 new BufferedOutputStream(new FileOutputStream("H:\\项目\\javaSE\\IO\\src\\com\\Lucky\\io\\BufferStream\\copy.txt"));
22 
23          int val;
24         while ((val=bufInStr.read())!=-1){
25             bufOutStr.write(val);
26         }
27 
28         bufOutStr.close();    //不用关闭基础流,因为在缓冲流的底层中已经将基础流进行colse
29         bufInStr.close();
30 
31     }
32 }

②字符缓冲流

 1 package com.Lucky.io.BufferStream;
 2 
 3 import java.io.*;
 4 
 5 /*
 6 字符缓冲流: 是字符流的高级流之一【效率比基础的字符流高一点,因为在字符流中本身就存在缓冲区】
 7  格式:       缓冲流  名称 = new 缓冲流(new 基础流)
 8              例如:           BufferedReader reader=
 9                                            new BufferedReader(new FileReader(""));
10 
11 
12  */
13 
14 /**
15  * 其他的跟基础流一样【同样可以使用数组来进行一次读取多个字节】
16  * 注意点:相对于字符基础流来说,多了2个独有的方法【readLine】一次读取一行数据
17  *                                      【newLine】  换行
18  *
19  */
20 public class charBufferStream {
21     public static void main(String[] args) throws IOException {
22        BufferedReader bufreader=
23                new BufferedReader(new FileReader("H:\\项目\\javaSE\\IO\\src\\com\\Lucky\\io\\BufferStream\\bufferTest.txt"));
24        BufferedWriter bufWriter=
25                new BufferedWriter(new FileWriter("H:\\项目\\javaSE\\IO\\src\\com\\Lucky\\io\\BufferStream\\charBufferTest.txt"));
26 
27 
28 
29 
30        String val;
31        while ((val=bufreader.readLine())!=null){  //结尾最后返回null
32            System.out.println(val);
33            bufWriter.newLine();   //换行【可以不同的系统中使用不用再使用\r\n】
34        }
35 
36 
37        //关闭流
38         bufWriter.close();
39         bufreader.close();
40     }
41 }

综合小练习:

练习一材料:

12.穿上婚纱让朋友见证我们
10.白头偕老是我一生宿愿
14.就让我给你一场想要的最美的婚礼
4.你我在调整着紧张的情绪
7.我想和你结婚做炙热的亲吻
8.我想和在这开始私定终身
1.嘉宾正准备着盛装出席
2.亲眼目睹这一浪漫的婚礼
3.红毯散满花瓣爱情在洋溢
9.香槟塔前许下了誓言
13.礼堂里营造出浪漫气息
11.我想和你结婚做最幸福的人
5.神圣的一刻开始记录珍惜
6.感谢这份爱你我都未缺席
package com.Lucky.io.BufferStream.test;

import java.io.*;
import java.util.*;

/**
 * 练习1:将sort.txt【顺序乱的】的数据排序输出到新的文件中【拷贝数据加排序】
 */
public class sort {
    public static void main(String[] args) throws IOException {
        //创建对象
//        BufferedInputStream in=
//                new BufferedInputStream(new FileInputStream("H:\\项目\\javaSE\\IO\\src\\com\\Lucky\\io\\BufferStream\\test\\sort.txt"));
        BufferedWriter out=
                new BufferedWriter(new FileWriter("H:\\项目\\javaSE\\IO\\src\\com\\Lucky\\io\\BufferStream\\test\\sortNew.txt"));
        BufferedReader bufreader=
                new BufferedReader(new FileReader("H:\\项目\\javaSE\\IO\\src\\com\\Lucky\\io\\BufferStream\\test\\sort.txt"));


        //////////////////解法一:ArrayList/////////////////////////////////
        byte[] arr=new byte[1024];
        String  val;
        ArrayList<String> li=new ArrayList<>();
        while ((val=bufreader.
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇教你几个 Java 编程中的奇技淫巧 下一篇Java内部类笔记整理

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目