使用InputStream
over 的好处是什么InputStreamReader
,反之亦然。
这是一个实际的例子InputStream
:
InputStream input = new FileInputStream("c:\\data\\input-text.txt");
int data = input.read();
while(data != -1) {
//do something with data...
doSomethingWithData(data);
data = input.read();
}
input.close();
这是一个使用InputStreamReader的示例(显然是在InputStream的帮助下):
InputStream inputStream = new FileInputStream("c:\\data\\input.txt");
Reader reader = new InputStreamReader(inputStream);
int data = reader.read();
while(data != -1){
char theChar = (char) data;
data = reader.read();
}
reader.close();
Reader是否以特殊方式处理数据?
只是想让我了解i/o
Java 的整个流数据方面。
它们代表了一些不同的东西。
它InputStream
是所有可能的字节 流
的祖先类,它本身没有用,但是所有子类(如FileInputStream
您正在使用的子类)都非常适合处理二进制数据。
另一方面,InputStreamReader
(及其父亲Reader
)专门用于处理字符(即字符串),因此它们可以优雅地处理字符集编码(utf8,iso-8859-1等)。
简单的答案是:如果需要二进制数据,则可以使用。InputStream
(也可以是特定的数字,如DataInputStream
),如果需要使用文本,则可以使用InputStreamReader
。
问题内容: 如何从URL获取InputStream? 例如,我想在url上获取文件,并通过servlet将其作为Java中的InputStream读取。 我试过了 但是我得到的是一个错误: 问题答案: 使用正确的URL(包括协议!)。例如 也可以看看: 使用java.net.URLConnection触发和处理HTTP请求
问题内容: 请提供指针以帮助我模拟该java InputStream对象。这是我希望模拟的代码行: 问题答案:
问题内容: 我正在读取dds纹理,但是自从构建了jar之后,我无法通过访问这些纹理,而不得不使用它。 所以,我需要知道我怎么能获得从。 附言: 无论通过第3部分库,我都只需要它起作用 问题答案: 对我而言,在这种情况下最好的是Apache commons-io来处理此任务和类似任务。 该类型具有静态方法来读取和返回。 在内部,这会创建一个并将字节复制到输出,然后调用。 UPDATE :只要你有,如
问题内容: 我有这个InputStream: 如何将其转换为ServletInputStream? 我努力了: 但不起作用。 编辑: 我的方法是这样的: 我正在尝试将所有请求都转换为小写。 问题答案: 试试这个代码。
问题内容: 我需要在不创建File实例的情况下获取InputStream的大小(以字节为单位)。使用Java NIO有什么办法吗? 问题答案: 一般的?您只需要继续读取和读取(例如,一次又一次地读入同一个缓冲区),就可以计算已读取的字节数,直到到达流的末尾为止。 当然,您将无法读取数据本身……如果要这样做,则需要在读取数据时将其保留,例如,将其复制到。 (如果您能够在计算长度的同时处理数据,则只需
描述 (Description) java.util.zip.ZipFile.getInputStream(ZipEntry entry)方法返回一个输入流,用于读取指定zip文件条目的内容。 声明 (Declaration) 以下是java.util.zip.ZipFile.getInputStream(ZipEntry entry)方法的声明。 public InputStream getIn