激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

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

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

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

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

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

?
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)

示例代碼:
關(guān)于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;
  // 對應(yīng)英文字母“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測試函數(shù)
   */
  private static void tesCharArrayReader() {
    try {
      // 創(chuàng)建CharArrayReader字符流,內(nèi)容是ArrayLetters數(shù)組
      CharArrayReader car = new CharArrayReader(ArrayLetters);
 
      // 從字符數(shù)組流中讀取5個字符
      for (int i=0; i<LEN; i++) {
        // 若能繼續(xù)讀取下一個字符,則讀取下一個字符
        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”,因為因為前面已經(jīng)讀取了5個字符,所以下一個被讀取的位置是第6個字符”
      // (01), CharArrayReader類的mark(0)函數(shù)中的“參數(shù)0”是沒有實際意義的。
      // (02), mark()與reset()是配套的,reset()會將“字符流中下一個被讀取的位置”重置為“mark()中所保存的位置”
      car.mark(0);
 
      // 跳過5個字符。跳過5個字符后,字符流中下一個被讀取的值應(yīng)該是“k”。
      car.skip(5);
 
      // 從字符流中讀取5個數(shù)據(jù)。即讀取“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();
    }
  }
}

運行結(jié)果:

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

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

?
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)

示例代碼:
關(guān)于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;
  // 對應(yīng)英文字母“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測試函數(shù)
   */
  private static void tesCharArrayWriter() {
    try {
      // 創(chuàng)建CharArrayWriter字符流
      CharArrayWriter caw = new CharArrayWriter();
 
      // 寫入“A”個字符
      caw.write('A');
      // 寫入字符串“BC”個字符
      caw.write("BC");
      //System.out.printf("caw=%s\n", caw);
      // 將ArrayLetters數(shù)組中從“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);
 
      // 轉(zhuǎn)換成byte[]數(shù)組
      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();
    }
  }
}

運行結(jié)果:

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品一区2区3区 | 在线播放视频一区二区 | 91福利免费视频 | 久久国产中文 | 黄色大片www | 99精品无人区乱码在线观看 | 中文字幕一区在线观看视频 | 久久国产一二区 | 日本在线免费观看视频 | 福利免费在线 | 欧美成人精品一区二区三区 | 一区二区三区日韩在线 | 中文字幕在线播放一区 | 欧美日韩在线免费观看 | av电影观看 | 国产一区二区免费在线观看 | 午夜视频你懂的 | 久草手机在线视频 | 91久久久久久久久久久久久久 | 麻豆视频观看 | 欧美性激情视频 | 91在线视频导航 | 成人一级黄色片 | 久久久久久久久国产 | 日韩精品一区二区免费视频 | 久久艹一区 | 永久免费av在线 | 免费视频精品一区二区 | 成人午夜免费网站 | 黄色视频a级毛片 | 亚洲视频在线一区二区 | 激情视频免费看 | 草妞视频 | 国产精品jk白丝蜜臀av软件 | 免费特黄 | 青青草免费观看 | 水卜樱一区二区av | 二区视频| 成年人免费视频播放 | 久久久成人精品 | 国内精品久久久久久久影视红豆 |