国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java中BufferedReader與BufferedWriter類的使用示例

Java中BufferedReader與BufferedWriter類的使用示例

2020-05-23 12:17skywangkw JAVA教程

BufferedReader與BufferedWriter分別繼承于Reader和Writer類,分別為字符的讀取和寫入添加緩沖功能,這里我們就來看一下Java中BufferedReader與BufferedWriter類的使用示例:

BufferedReader
BufferedReader 是緩沖字符輸入流。它繼承于Reader。
BufferedReader 的作用是為其他字符輸入流添加一些緩沖功能。
創建BufferReader時,我們會通過它的構造函數指定某個Reader為參數。BufferReader會將該Reader中的數據分批讀取,每次讀取一部分到緩沖中;操作完緩沖中的這部分數據之后,再從Reader中讀取下一部分的數據。
為什么需要緩沖呢?原因很簡單,效率問題!緩沖中的數據實際上是保存在內存中,而原始數據可能是保存在硬盤或NandFlash中;而我們知道,從內存中讀取數據的速度比從硬盤讀取數據的速度至少快10倍以上。
那干嘛不干脆一次性將全部數據都讀取到緩沖中呢?第一,讀取全部的數據所需要的時間可能會很長。第二,內存價格很貴,容量不想硬盤那么大。

示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.lang.SecurityException;
 
public class BufferedReaderTest {
 
  private static final int LEN = 5;
 
  public static void main(String[] args) {
    testBufferedReader() ;
  }
 
  /**
   * BufferedReader的API測試函數
   */
  private static void testBufferedReader() {
 
    // 創建BufferedReader字符流,內容是ArrayLetters數組
    try {
      File file = new File("bufferedreader.txt");
      BufferedReader in =
         new BufferedReader(
           new FileReader(file));
 
      // 從字符流中讀取5個字符。“abcde”
      for (int i=0; i<LEN; i++) {
        // 若能繼續讀取下一個字符,則讀取下一個字符
        if (in.ready()) {
          // 讀取“字符流的下一個字符”
          int tmp = in.read();
          System.out.printf("%d : %c\n", i, tmp);
        }
      }
 
      // 若“該字符流”不支持標記功能,則直接退出
      if (!in.markSupported()) {
        System.out.println("make not supported!");
        return ;
      }
 
      // 標記“當前索引位置”,即標記第6個位置的元素--“f”
      // 1024對應marklimit
      in.mark(1024);
 
      // 跳過22個字符。
      in.skip(22);
 
      // 讀取5個字符
      char[] buf = new char[LEN];
      in.read(buf, 0, LEN);
      System.out.printf("buf=%s\n", String.valueOf(buf));
      // 讀取該行剩余的數據
      System.out.printf("readLine=%s\n", in.readLine());
 
      // 重置“輸入流的索引”為mark()所標記的位置,即重置到“f”處。
      in.reset();
      // 從“重置后的字符流”中讀取5個字符到buf中。即讀取“fghij”
      in.read(buf, 0, LEN);
      System.out.printf("buf=%s\n", String.valueOf(buf));
 
      in.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (SecurityException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

程序中讀取的bufferedreader.txt的內容如下:

?
1
2
3
abcdefghijklmnopqrstuvwxyz
0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ

運行結果:

?
1
2
3
4
5
6
7
8
0 : a
1 : b
2 : c
3 : d
4 : e
buf=01234
readLine=56789
buf=fghij

BufferedWriter
BufferedWriter 是緩沖字符輸出流。它繼承于Writer。
BufferedWriter 的作用是為其他字符輸出流添加一些緩沖功能。
BufferedWriter通過字符數組來緩沖數據,當緩沖區滿或者用戶調用flush()函數時,它就會將緩沖區的數據寫入到輸出流中。
示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import java.io.BufferedWriter;
import java.io.File;
import java.io.OutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.lang.SecurityException;
import java.util.Scanner;
 
public class BufferedWriterTest {
 
  private static final int LEN = 5;
  // 對應英文字母“abcdefghijklmnopqrstuvwxyz”
  //private static final char[] ArrayLetters = "abcdefghijklmnopqrstuvwxyz";
  private static final char[] ArrayLetters = new char[] {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
 
  public static void main(String[] args) {
    testBufferedWriter() ;
  }
 
  /**
   * BufferedWriter的API測試函數
   */
  private static void testBufferedWriter() {
 
    // 創建“文件輸出流”對應的BufferedWriter
    // 它對應緩沖區的大小是16,即緩沖區的數據>=16時,會自動將緩沖區的內容寫入到輸出流。
    try {
      File file = new File("bufferwriter.txt");
      BufferedWriter out =
         new BufferedWriter(
           new FileWriter(file));
 
      // 將ArrayLetters數組的前10個字符寫入到輸出流中
      out.write(ArrayLetters, 0, 10);
      // 將“換行符\n”寫入到輸出流中
      out.write('\n');
 
      out.flush();
      //readUserInput() ;
 
      out.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (SecurityException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
 
  /**
   * 讀取用戶輸入
   */
  private static void readUserInput() {
    System.out.println("please input a text:");
    Scanner reader=new Scanner(System.in);
    // 等待一個輸入
    String str = reader.next();
    System.out.printf("the input is : %s\n", str);
  }
}

運行結果: 生成文件“bufferwriter.txt”,文件的內容是“abcdefghij”。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美精品一区三区 | 欧美精品在线播放 | 欧美午夜精品久久久 | 韩国精品一区 | 狠狠操夜夜操 | 麻豆精品国产91久久久久久 | 丁香亚洲 | 伊人av成人| 天天干夜夜操 | www.久久久久久久 | 国产一区二区精品在线观看 | 欧美一级大片 | 国产精品一区二区三区四区五区 | 日韩中文视频 | 久久久影院| 欧美激情精品久久久久久 | 91精品国产色综合久久不卡蜜臀 | 北条麻妃在线一区二区免费播放 | 精品国产乱码久久久久久88av | 午夜影院啊啊啊 | 99re在线观看 | 亚洲精品一区在线观看 | 国产视频一二三区 | 少妇精品久久久久久久久久 | av三级 | 欧美日韩在线免费观看 | 91久久在线 | 草草浮力影院 | 久久久国产精品免费观看 | 国产超碰人人爽人人做人人爱 | 日韩欧美在线观看一区二区 | 亚洲一区二区三区四区五区中文 | 久久成人久久爱 | 中文字幕色| av在线免费网址 | 国产丝袜在线 | 亚洲精品免费视频 | 日本天堂在线 | 国产一区二区精品在线观看 | 亚洲精品二区三区 | 精品www|