问题标签 [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.

0 投票
1 回答
686 浏览

java - java InputStreamReader / BufferedReader“读取”行为

一个相关的问题是:为 InputStreamReader 定义此行为的规范在哪里?,但我不确定它是否能回答我的问题......请注意,我只是在尝试使用这种语言。我有这个代码:

使用 ubuntu linux,我期望输出是这样的:

但相反,它是这样的:

现在我不确定 Windows 中的行为是什么,可能是不同的,但这仍然让我有点困惑。阅读该read方法的文档,我发现如果到达流的末尾,它只会返回 -1。我有点理解这对于读取文件是如何工作的,但是在这种情况下,控制台怎么样?为什么必须等到输入 Ctrl + D ?有什么方法可以在不输入 Ctrl + D 的情况下到达流的末尾?有没有办法实现我的期望?

提前致谢

0 投票
6 回答
9018 浏览

java - DataInputStream vs InputStreamReader,试图从概念上理解两者

正如我目前初步理解的那样:

DataInputStream是一个InputStream子类,因此它读取和写入字节。如果您正在读取字节并且您知道它们都将是ints 或其他一些原始数据类型,那么您可以使用 将这些bytes 直接读入原始数据类型DataInputStream

  • 问题:在读取内容之前,您是否需要知道正在读取的内容的类型(int、string 等)?整个文件是否需要由一种原始类型组成?

我遇到的问题是:为什么不使用InputStreamReader环绕InputStream的字节数据?使用这种方法,您仍在读取字节,然后将它们转换为表示字符的整数。哪些整数代表哪些字符取决于指定的字符集,例如“UTF-8”。

  • 问题:在什么情况下InputStreamReader,a 可以工作的地方不能DataInputStream工作?

我的猜测答案:如果速度真的很重要,并且您可以做到,那么将InputStream's 字节数据直接转换为原始 viaDataInputStream将是要走的路吗?这避免了Reader必须将字节数据“转换”为int第一个;并且它不依赖于提供字符集来解释返回的整数表示哪个字符。我想这就是人们所说的DataInputStream允许机器独立读取基础数据的意思。

  • 简化:DataInputStream可以将字节直接转换为原语。

激发整个事情的问题:我正在阅读以下教程代码:

...我不明白为什么讲师选择使用new DataInputStream(fis)它,因为它看起来没有任何直接从字节转换为原语的能力被利用?

  • 我错过了什么吗?

感谢您的见解。

0 投票
1 回答
77 浏览

java - Java 资源的 FileReader 等价物

是否有一个实用程序类(例如,在 commons-io 或 Guava 中,如果不在核心 Java 中)相当于FileReader, 但用于资源?我的意思是,是的,我可以写

但是用更少的样板噪音来做这件事会很好。

0 投票
4 回答
758 浏览

java - 读取 InputStream 时忽略编码

我在向 IIS 服务器发出 HTTP 请求的 Java 应用程序中遇到了一些编码问题。

遍历URLConnection对象的标题,我可以看到以下(相关)标题:

URLConnection.getContentEncoding()方法返回 utf-8 作为文档编码。

这就是我的 HTTP 请求和流读取的方式:

但是,服务器“ÃÃÃção”发送的以下字符串被客户端接收为“�����o”。

我究竟做错了什么 ?

0 投票
2 回答
13421 浏览

java - JAVA:使用 InputStreamReader 打开和读取文件

我正在尝试使用 InputStreamReader 读取二进制文件(pdf、doc、zip)。我使用 FileInputStream 实现了这一点,并将文件的内容保存到字节数组中。但是我被要求使用 InputStreamReader 来做到这一点。因此,当我尝试打开和阅读 pdf 文件时,例如使用

然后将此内容保存到另一个pdf文件使用

一切正常(没有异常或错误),但是当我尝试打开新文件时,它要么说它已损坏,要么编码错误。

有什么建议吗??

ps1 我特别需要这个使用 InputStreamReader

ps2 在尝试读/写 .txt 文件时工作正常

0 投票
1 回答
1116 浏览

android - InputstreamReader 没有从 URL 读取所有字节的数据:android?

当我尝试从服务器下载文件时,它会丢失一些字节!并显示为损坏的文件。在我尝试从 URL 下载的代码下方。运行时也不例外。我在服务中使用它。这些是我尝试的示例结果:

文件 1:实际大小 = 73.2 kb 下载大小 = 68.7 kb

文件 2:实际大小 = 147 kb 下载大小 = 137 kb

文件 3:实际大小 = 125 kb 下载大小 = 116.8 kb

请帮助我找到我的代码所需的更正。谢谢,

0 投票
2 回答
299 浏览

java - exec的输出未写入java中的文件

在我的 Java 代码中,我调用了一个外部程序,我使用以下内容:

调用外部程序 dia 的输出应写入名为 file1 的文件中,直到今天它都正常运行。我想问题是当 dia 的输出很大时,我没有得到任何输出。BufferReader 有大小限制吗?

0 投票
0 回答
45 浏览

java - Java InputStreamReader 读取不存在的数据

我正在测试一些使用 InputStreamReader 从互联网上的文本文件中读取数据的代码。它第一次工作并返回了正确的结果;但是,我尝试更改文件的内容,甚至完全从服务器上删除文件,返回的结果始终保持不变。每次检查时,我都会重新启动程序。

然后,我尝试通过更改 URL 对象(指向不存在的对象)将 InputStreamReader 指向不同的位置,最后,它没有按预期找到文件。

有谁知道这可能是什么原因造成的?

这是代码:

当然,我也尝试过通过浏览器加载 URL,它的行为符合预期(当我更改托管文件的内容时,显示的数据会发生变化)。

0 投票
3 回答
2422 浏览

java - BufferedReader / AsynchTask- java.lang.NullPointerException: lock == null

我正在开发一个 Android 应用程序,但我遇到了一个错误。我正在尝试与服务器通信并从该服务器获取 JSON 对象。我创建了一个名为 ServerCommunication 的类,它扩展了 AsynchTask。我的服务器通信类有标准的 doInBackground() 方法。在此方法中,我尝试从网页解析 JSON 对象,但该方法引发异常。

我应该提到我现在在我的机器上本地运行我的服务器。因此,我通过我的 ServerCommunication 的 url 是:http://127.0.0.1:9000/getVehicle/2942。此网页包含 JSON 对象的纯文本。将在底部包含 JSON 对象。

例外是:java.lang.NullPointerException: lock == null. 此异常在第二个 try-catch 中引发。

导致此异常的行是:

这是行有错误,因为 myInputStream is为空。出于某种原因,这条线抛出了一个异常,这就是为什么is为空。我将在这篇文章的末尾包含我的日志输出

这是我的 ServerCommunication 类:

这是我要解析的 JSON 对象:

日志输出

有什么建议么?

0 投票
1 回答
94 浏览

java - 需要帮助理解这段 Java 代码

现在首先,我不会问这是我对输入和输出一无所知。我看过很多关于 PrintWriter、FileInputStream、InputStreamReader 和 IOException 的教程。我理解这些类的概念。但我就是不明白这段代码。我试着运行它。首先,有一个输出说“两行:”。我在第一行输入“hello”,在第二行输入“I am Bob”。当我按下回车键时,程序只会输出我写的内容。这是控制台上出现的示例:

此后程序继续运行。有人可以向我解释一下代码吗?我在此代码中看到了一些新内容,例如System.getProperty ("line.separator")。这种方法的目的是什么?while 循环和 for 循环有什么作用?为什么fout.flush()被注释掉了?如果我将它包含在代码中会发生什么?我感到很困惑。这是代码: