一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

服務器之家 - 編程語言 - JAVA教程 - Java的字符讀寫類CharArrayReader和CharArrayWriter使用示例

Java的字符讀寫類CharArrayReader和CharArrayWriter使用示例

2020-05-19 10:52skywang JAVA教程

這篇文章主要介紹了Java的字符讀寫類CharArrayReader和CharArrayWriter使用示例,兩個類分別繼承于Reader和Writer,需要的朋友可以參考下

CharArrayReader
CharArrayReader 是字符數組輸入流。它和ByteArrayInputStream類似,只不過ByteArrayInputStream是字節數組輸入流,而CharArray是字符數組輸入流。CharArrayReader 是用于讀取字符數組,它繼承于Reader。操作的數據是以字符為單位!
CharArrayReader 函數列表:

?
1
2
3
4
5
6
7
8
9
10
11
CharArrayReader(char[] buf)
CharArrayReader(char[] buf, int offset, int length)
 
void   close()
void   mark(int readLimit)
boolean  markSupported()
int    read()
int    read(char[] buffer, int offset, int len)
boolean  ready()
void   reset()
long   skip(long charCount)

示例代碼:
關于CharArrayReader中API的詳細用法,參考示例代碼(CharArrayReaderTest.java):

?
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
import java.io.CharArrayReader;
import java.io.CharArrayWriter;
import java.io.IOException;
 
public class CharArrayReaderTest {
 
  private static final int LEN = 5;
  // 對應英文字母“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) {
    tesCharArrayReader() ;
  }
 
  /**
   * CharArrayReader的API測試函數
   */
  private static void tesCharArrayReader() {
    try {
      // 創建CharArrayReader字符流,內容是ArrayLetters數組
      CharArrayReader car = new CharArrayReader(ArrayLetters);
 
      // 從字符數組流中讀取5個字符
      for (int i=0; i<LEN; i++) {
        // 若能繼續讀取下一個字符,則讀取下一個字符
        if (car.ready() == true) {
          // 讀取“字符流的下一個字符”
          char tmp = (char)car.read();
          System.out.printf("%d : %c\n", i, tmp);
        }
      }
 
      // 若“該字符流”不支持標記功能,則直接退出
      if (!car.markSupported()) {
        System.out.println("make not supported!");
        return ;
      }
 
      // 標記“字符流中下一個被讀取的位置”。即--標記“f”,因為因為前面已經讀取了5個字符,所以下一個被讀取的位置是第6個字符”
      // (01), CharArrayReader類的mark(0)函數中的“參數0”是沒有實際意義的。
      // (02), mark()與reset()是配套的,reset()會將“字符流中下一個被讀取的位置”重置為“mark()中所保存的位置”
      car.mark(0);
 
      // 跳過5個字符。跳過5個字符后,字符流中下一個被讀取的值應該是“k”。
      car.skip(5);
 
      // 從字符流中讀取5個數據。即讀取“klmno”
      char[] buf = new char[LEN];
      car.read(buf, 0, LEN);
      System.out.printf("buf=%s\n", String.valueOf(buf));
 
      // 重置“字符流”:即,將“字符流中下一個被讀取的位置”重置到“mark()所標記的位置”,即f。
      car.reset();
      // 從“重置后的字符流”中讀取5個字符到buf中。即讀取“fghij”
      car.read(buf, 0, LEN);
      System.out.printf("buf=%s\n", String.valueOf(buf));
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

運行結果:

?
1
2
3
4
5
6
7
0 : a
1 : b
2 : c
3 : d
4 : e
buf=klmno
buf=fghij

CharArrayWriter
CharArrayReader 用于寫入數據符,它繼承于Writer。操作的數據是以字符為單位!
CharArrayWriter 函數列表

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CharArrayWriter()
CharArrayWriter(int initialSize)
 
CharArrayWriter   append(CharSequence csq, int start, int end)
CharArrayWriter   append(char c)
CharArrayWriter   append(CharSequence csq)
void   close()
void   flush()
void   reset()
int   size()
char[]   toCharArray()
String   toString()
void   write(char[] buffer, int offset, int len)
void   write(int oneChar)
void   write(String str, int offset, int count)
void   writeTo(Writer out)

示例代碼:
關于CharArrayWriter中API的詳細用法,參考示例代碼(CharArrayWriterTest.java):

?
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
import java.io.CharArrayReader;
import java.io.CharArrayWriter;
import java.io.IOException;
 
public class CharArrayWriterTest {
 
  private static final int LEN = 5;
  // 對應英文字母“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) {
 
    tesCharArrayWriter() ;
  }
 
  /**
   * CharArrayWriter的API測試函數
   */
  private static void tesCharArrayWriter() {
    try {
      // 創建CharArrayWriter字符流
      CharArrayWriter caw = new CharArrayWriter();
 
      // 寫入“A”個字符
      caw.write('A');
      // 寫入字符串“BC”個字符
      caw.write("BC");
      //System.out.printf("caw=%s\n", caw);
      // 將ArrayLetters數組中從“3”開始的后5個字符(defgh)寫入到caw中。
      caw.write(ArrayLetters, 3, 5);
      //System.out.printf("caw=%s\n", caw);
 
      // (01) 寫入字符0
      // (02) 然后接著寫入“123456789”
      // (03) 再接著寫入ArrayLetters中第8-12個字符(ijkl)
      caw.append('0').append("123456789").append(String.valueOf(ArrayLetters), 8, 12);
 
      System.out.printf("caw=%s\n", caw);
 
      // 計算長度
      int size = caw.size();
      System.out.printf("size=%s\n", size);
 
      // 轉換成byte[]數組
      char[] buf = caw.toCharArray();
      System.out.printf("buf=%s\n", String.valueOf(buf));
 
      // 將caw寫入到另一個輸出流中
      CharArrayWriter caw2 = new CharArrayWriter();
      caw.writeTo(caw2);
      System.out.printf("caw2=%s\n", caw2);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

運行結果:

?
1
2
3
4
caw=ABCdefgh0123456789ijkl
size=22
buf=ABCdefgh0123456789ijkl
caw2=ABCdefgh0123456789ijkl

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91porny新九色在线 | 成全动漫视频在线观看 | 国产精品久久国产三级国电话系列 | 青柠影视在线播放观看高清 | 亚洲乱亚洲乱妇41p国产成人 | 精品人伦一区二区三区潘金莲 | 小妇人电影免费完整观看2021 | 爽爽影院免费观看 | 婷婷99视频精品全部在线观看 | 91久久精品青青草原伊人 | 特黄特色大片免费视频大全 | 俄罗斯freeⅹ性欧美 | 午夜福到在线2019 | 欧美日韩国产手机在线观看视频 | 九九精品国产 | 国产91免费 | 国自产拍在线天天更新91 | 紧致肉肉高h | 撕开老师的丝袜白丝扒开粉嫩的小 | 国外欧美一区另类中文字幕 | 顶级尤物极品女神福利视频 | 免费国产在线视频 | 欧美日韩在线观看一区二区 | 四虎在线永久免费视频网站 | 99re8在这里只有精品2 | 国产在线观看福利 | 午夜宅男在线观看 | 禁漫H天堂免费A漫 | 免费高清视频在线观看 | 91国语精品自产拍在线观看一 | 3d动漫美女被吸乳羞羞视频 | 国产成人综合精品 | 精品视频在线观看免费 | 成人私人影院在线观看网址 | 青青草国产精品久久久久 | 亚洲欧美国产在线 | 成人综合网站 | 蜜月aⅴ免费一区二区三区 蜜桃影像传媒推广 | 校园全肉高h湿一女多男 | 日你逼 | 日韩一级片在线免费观看 |