IO流访问字符串

StringReader:用来将字符串转换成字符输入流。然后使用字符输入流提供的方式进行操作,也可以提供给其他高级字符输入流来使用。如可以将该字符输入流提供给 BufferedReader输入流使用。

public class StringReaderStringWrite {

    public static void main(String[] args) throws IOException {

        //模拟从某个地方获取到的大量字符串数据

        String str = "JavaIO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,\n Java中把不同的输入/输出源(键盘、文件、网络连接等)抽象表述 stream),\n通过流的方式允许Java程序使用相同的方式来访问不同的输入输 出源。\nstream是从起源(source)到接收(sink)的有序数据。\nJava把所有传统的流类型(类或抽象类)都放在java.io包中,用以实现输入输出功能。";

        //把字符串转为输入流

        StringReader in=new StringReader(str);

        //通过BufferedReader访问字符串         

        BufferedReader reader=new BufferedReader(in);

        String strPrintln="";

        while ((strPrintln=reader.readLine())!=null) {

            System.out.println(strPrintln);

        }

        reader.close();//关闭流

    }

}

StringWriter:一个字符流,可以用其回收在字符串缓冲区中的输出来构造字符串。 关闭 StringWriter 无效,此类中的方法在关闭该流后仍可被调用,而不会产生任何 IOException异常。

在内存中缓存读取到的所有字符串,然后可以使用toString方法一次性全部输出字符串。

String strString = "StringWriter:一个字符流,可以用其回收在字符串缓冲区中的输出来构造字符串";

    //创建StringWriter实例

    StringWriter stringWriter=new StringWriter();

    stringWriter.write(strString);//可直接写入字符串

    stringWriter.write("\n------------\n");        stringWriter.write(strString, 0, 20);//也可写入字符串的某一部分。

    stringWriter.write("\r------------\r");

    Reader reader1 = new FileReader("G:/z/WriterDemo.txt");

    char[] cs = new char[10];

    int count = 0;

    while((count=reader1.read(cs, 0, cs.length)) != -1 ){

        //把读取的内容写入到StringWriter对象             

        stringWriter.write(cs, 0, count);//也可写入字符数组

    }

    stringWriter.close();//关闭无效,此类中的方法在关闭该流后仍可被调用,而不会产生任何 IOException异常。

    //一次性将字符串取出

    String strWrite = stringWriter.toString();//toString():以字符串的形式返回该缓冲区的当前值。

    System.out.println(strWrite);

输出结果如下:

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值