问题标签 [inputstreamreader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - InputStreamReader 缓冲问题
不幸的是,我正在从具有两种字符编码的文件中读取数据。
有一个标题和一个正文。标头始终采用 ASCII 格式,并定义了正文编码的字符集。
标头不是固定长度,必须通过解析器运行以确定其内容/长度。
该文件也可能非常大,因此我需要避免将整个内容放入内存。
所以我从单个 InputStream 开始。我最初用一个带有 ASCII 的 InputStreamReader 包装它,然后解码标题并提取正文的字符集。都好。
然后我用正确的字符集创建一个新的 InputStreamReader,将它放在同一个 InputStream 上并开始尝试读取正文。
不幸的是,javadoc 证实了这一点,InputStreamReader 可能会出于效率目的选择预读。所以标题的阅读会咀嚼部分/全部的身体。
有人对解决这个问题有什么建议吗?会手动创建一个 CharsetDecoder 并一次输入一个字节,但这是一个好主意(可能包含在自定义 Reader 实现中?)
提前致谢。
编辑:我的最终解决方案是编写一个没有缓冲的 InputStreamReader,以确保我可以在不咀嚼部分身体的情况下解析标题。虽然这不是非常有效,但我用 BufferedInputStream 包装了原始 InputStream,所以它不会成为问题。
java - 使用 base64 编码器和 InputStreamReader 的问题
我在数据库中有一些 CLOB 列,我需要将 Base64 编码的二进制文件放入其中。这些文件可能很大,所以我需要流式传输它们,我不能一次读取整个内容。
我正在使用org.apache.commons.codec.binary.Base64InputStream
进行编码,但遇到了问题。我的代码本质上是这样的
当我运行上面的代码时,我在 update 的执行过程中得到了其中一个
java.io.IOException: Underlying input stream returned zero bytes
,它被扔进了 InputStreamReader 代码的深处。
为什么这行不通?在我看来,reader
它将尝试从 base 64 流中读取,该流将从文件流中读取,并且一切都应该是愉快的。
java - How can I read a UTF-8 text file from a jar using the Java method Class.getResourceAsStream()?
I have a UTF-8 file stored inside a java jar file. I am trying to read it using the method getResourceAsStream(), but the input stream reader that is returned by the function uses the default encoding, which is the ANSI one under Windows.
How can I read a UTF-8 text file from inside a jar?
c# - c#streamreader 在文本文件中随机选择一行
嗨,我正在从文本文件中读取数据,并希望将每一行放入一个单独的变量中。从我的编程课程中我记得,数组不能是动态的。因此,如果我设置了 15 个数组,并且文本文件有 1000 行,我能做什么以及如何实现它。
问题是只需要一条线,但我希望随机选择这条线。linetext 是在每个请求的末尾附加了 \r\n 的整个文本文件。
也许随机选择 \r\n 然后计数 4 并在其后添加字符串直到下一个 \r\n。这个想法的问题是被调用的字符串也将包含 \ 所以有什么想法吗?
java - Java inputStreamReader Charset
I want to ping a target IP address and receive a response. To achieve this, I'm using windows command line in Java with runtime.exec method and process class. I'm getting the response using inputStreamReader.
My default charset is windows-1254, it's Turkish. When I receive it, the response contains Turkish characters but Turkish characters are not displayed correctly in the console.
I want to get a numeric value from the response I get but the value that I am searching for contains some Turkish characters, so when I look it up, I can't find it.
The codes are below, what I need to know is how to get the Turkish characters visible here:
java - 阅读网页内容
您好我想使用 java 阅读包含德语字符的网页内容,不幸的是,德语字符显示为奇怪的字符。任何帮助请这里是我的代码:
java - 从 InputStream 读取文本和二进制数据
我正在尝试从二进制流中读取数据,其中的一部分应该被解析为 UTF-8。
直接使用InputStream
二进制数据并InputStreamReader
在其上使用 UTF-8 文本不起作用,因为即使被告知读取最多n
字符,阅读器也会提前阅读并弄乱后续的二进制数据。
我认识到这个问题与Read from InputStream in multiple formats非常相似,但是那里提出的解决方案特定于 HTTP 流,这对我没有帮助。
我想只是将所有内容作为二进制数据读取,然后将相关部分转换为文本。但我只有字符数据的长度信息,而不是字节。因此,我需要从流中读取字符的东西来了解编码。
有没有办法告诉 InputStreamReader 不要比读取给定数量的字符所需的更远?或者是否有一个阅读器同时支持二进制数据和带有编码的文本,并且可以在这些模式之间动态切换?
java - InputStreamReader(InputStream in, Charset cs)返回的文本字符集是什么
我通过以下方式读取了一个 UTF-8 文件:
我想知道String
调用后返回的字符集是什么br.readLine()
?
我电脑上的 Eclipse 使用“GBK”作为默认字符集。
java - 如何在 ISO-8859-15 中获取 InputStreamReader?
如何让这个输入流读取 ISO-8859-15 编码文件?
我发现这条线似乎有效:
但
才不是。
java - Java 的 BufferedReader 和 InputStreamReader 类有什么区别?
BufferedReader
Java和InputStreamReader
类之间有什么区别?