Java中InputStream和Reader之间的转换(字符流和字节流怎么互相转换啊)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中InputStream和Reader之间的转换(字符流和字节流怎么互相转换啊)相关的知识,希望对你有一定的参考价值。
不知道这个提问有没有问题,我刚学到io流没多久。感觉混乱了
InputStream inp=file.getInputStream(entry);我要获得inp里的东东怎么做呢,最好获得一个String类型的
BufferedReader reader = new BufferedReader(isr);
可以调用 reader.readLine()方法追问
这位大哥你的这句BufferedReader reader = new BufferedReader(isr)比你楼上的回答有什么用吗?还有他调用的是read方法,你这里是readline方法,那种好呢?
本回答被提问者采纳 参考技术B 字节——>字符new Stirng(字节);
String c=new String(字节);
字符——>字节
字符转换字节
String.gettype();
byte[] b=字符.getBytes();追问
大哥,是字节流、字符流啊不是字节和字符。。。。
参考技术C InputStreamReader r = new InputStreamReader(inp)r.read(buf);
str = new String(buf);
Java IO: Reader和Writer
作者: Jakob Jenkov 译者: 李璟([email protected])
Reader
Reader是Java IO中所有Reader的基类。Reader与InputStream类似,不同点在于,Reader基于字符而非基于字节。换句话说,Reader用于读取文本,而InputStream用于读取原始字节。
请记住,Java内部使用UTF8编码表示字符串。输入流中一个字节可能并不等同于一个UTF8字符。如果你从输入流中以字节为单位读取UTF8编码的文本,并且尝试将读取到的字节转换成字符,你可能会得不到预期的结果。
read()方法返回一个包含了读取到的字符内容的int类型变量(译者注:0~65535)。如果方法返回-1,表明Reader中已经没有剩余可读取字符,此时可以关闭Reader。-1是一个int类型,不是byte或者char类型,这是不一样的。
你通常会使用Reader的子类,而不会直接使用Reader。Reader的子类包括InputStreamReader,CharArrayReader,FileReader等等。可以查看Java IO概述浏览完整的Reader表格。
Reader通常与文件、字符数组、网络等数据源相关联,Java IO概述中同样说明了这一点。
Writer
Writer是Java IO中所有Writer的基类。与Reader和InputStream的关系类似,Writer基于字符而非基于字节,Writer用于写入文本,OutputStream用于写入字节。
同样,你最好使用Writer的子类,不需要直接使用Writer,因为子类的实现更加明确,更能表现你的意图。常用子类包括OutputStreamWriter,CharArrayWriter,FileWriter等。
Writer的write(int c)方法,会将传入参数的低16位写入到Writer中,忽略高16位的数据。
原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java IO: Reader和Writer
以上是关于Java中InputStream和Reader之间的转换(字符流和字节流怎么互相转换啊)的主要内容,如果未能解决你的问题,请参考以下文章