java按照字符进行读写_Java的字符读写类CharArrayReader和CharArrayWriter使用示例

Java的字符读写类CharArrayReader和CharArrayWriter使用示例

发布于 2020-6-25|

复制链接

摘记: CharArrayReader

CharArrayReader 是字符数组输入流。它和ByteArrayInputStream类似,只不过ByteArrayInputStream是字节数组输入流,而CharArray是字符数组输入流。CharArrayReader 是用于读取字符数组,它继承于Reader。操 ..

CharArrayReader CharArrayReader 是字符数组输入流。它和ByteArrayInputStream类似,只不过ByteArrayInputStream是字节数组输入流,而CharArray是字符数组输入流。CharArrayReader 是用于读取字符数组,它继承于Reader。操作的数据是以字符为单位!

CharArrayReader 函数列表:

```plain

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

```java

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运行结果:

```plain

0 : a

1 : b

2 : c

3 : d

4 : e

buf=klmno

buf=fghij

```

CharArrayWriter

CharArrayReader 用于写入数据符,它继承于Writer。操作的数据是以字符为单位!

CharArrayWriter 函数列表

```plain

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

```java

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();

}

}

}

```

运行结果:

```plain

caw=ABCdefgh0123456789ijkl

size=22

buf=ABCdefgh0123456789ijkl

caw2=ABCdefgh0123456789ijkl

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值