问题标签 [java-io]

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 回答
1298 浏览

classpath - 从Java中的jar文件访问文件的问题

我有一个名为 App.jar 的 jar,它的结构如下

现在我想要的是我想config.propertiesMyClass.class

0 投票
2 回答
373 浏览

java - 删除之前的 XML 文件,直到使用 Java 生成新文件

定期使用PrintWriter将数据来自数据库的数据写入指定位置的 xml 文件。在当前运行中完全完成 xml 的生成之前,我不想删除现有的 xml 文件,因为如果在生成 xml 时出现任何问题,我将没有 xml 文件。希望有关处理这种情况的任何建议,其中当前文件的删除将推迟到在当前运行中生成/写入文件完全完成。

0 投票
3 回答
7795 浏览

java - 在java中将图像拼接在一起

我正在尝试使用 java 将一些图像拼接在一起。我有一堆我想拼接在一起的图像,它们都是相同的尺寸,所以我想这实际上只是一个将它们排列在一起的问题。我让它工作,但它很慢,可能非常占用内存。我想知道是否有更简单的方法:

0 投票
1 回答
301 浏览

java - 如何让 java.io.Console 显示默认值以供用户确认或修改?

新的http://download.oracle.com/javase/6/docs/api/java/io/Console.html类对于来自控制台的用户输入似乎没问题,但是,它似乎无法读取一行,但是默认已提交(因此用户只需按 Enter 确认或删除即可修改)。

我怎样才能在课堂上做到这一点?

0 投票
3 回答
6247 浏览

java - 限制每秒方法调用次数(达到限制时拒绝)

我有一个执行一些 IO 的方法,我想限制对该方法的调用(每秒),以避免后端获得它无法处理的并发请求突发。

如果要求没有“每秒”,我可以只使用一个堆栈(基本上只是一个计数器),并offer()在开始请求时以及poll()完成时使用。有了“每秒”的要求,我不知何故需要清理堆栈上比给定时间流逝更旧的插槽。

我该如何正确地做到这一点?显然,该结构应该是线程安全的。

感谢您的时间!

0 投票
3 回答
831 浏览

java - 减少java代码中打开文件的数量

嗨,我有一些使用块的代码

但该应用程序的具体情况是我必须生成大量临时文件,平均超过 4000 个(用于 Hive 插入分区表)。

问题是有时我会捕获异常

在应用程序运行期间。

如果有任何方法可以告诉操作系统该文件已经关闭并且不再使用,我会问为什么

不会减少打开文件的数量。有没有办法在 Java 代码中做到这一点?

我已经增加了打开文件的最大数量

更新: 我试图消除这个问题,所以我分开代码来调查它的每一部分(创建文件,上传到配置单元,删除文件)。

使用类 'File' 或 'RandomAccessFile' 失败,出现“打开的文件太多”异常。

最后我使用了代码:

这适用于大量文件(在 20K 上测试,每个文件大小为 5KB)。代码本身不会像前两个类那样抛出异常。但是生产代码(带有配置单元)仍然有例外。看来,通过 JDBC 的配置单元连接是它的原因。我会进一步调查。

0 投票
9 回答
25202 浏览

java - 如何找出用于分割行的行分隔符 BufferedReader#readLine()?

我正在通过 BufferedReader 读取文件

我需要知道这些行是否由 '\n' 或 '\r\n' 分隔,有什么办法可以找到吗?

我不想打开 FileInputStream 所以最初扫描它。理想情况下,我想问 BufferedReader,因为它必须知道。

我很高兴覆盖 BufferedReader 来破解它,但我真的不想打开文件流两次。

谢谢,

注意:当前行分隔符(由 System.getProperty("line.separator") 返回)不能使用,因为该文件可能已由另一个操作系统上的另一个应用程序写入。

0 投票
6 回答
4410 浏览

java - FileInputStream.read(byte[]) 有什么问题?

在回答我对文件阅读问题的回答时,一位评论者表示FileInputStream.read(byte[])“不保证会填满缓冲区”。

(代码假设文件长度不超过2GB)

除了IOException,还有什么可能导致该read方法无法检索整个文件内容?

编辑:

代码的想法(以及我回答的问题的 OP 的目标)是一口气将整个文件读入一块内存,这就是为什么buffer_size = file_size

0 投票
1 回答
13096 浏览

java - 使用Java从二进制文件中读取整数值

我正在尝试使用方法写入大于 256 的值DataOupPutStream.write()。当我尝试使用它读取相同的值DataInputStream.read()时,它将返回 0。因此,我使用DataOutputStream.writeInt()DataInputStream.readInt()方法来写入和检索大于 256 的值,它工作正常。

请参阅下面的代码片段,我想知道编译器在语句in.readInt()内部的行为。while

我运行此代码段时的输出是:

但是当我在调试模式下运行时,我得到以下输出:

0 投票
4 回答
22237 浏览

java - 套接字:BufferedReader readLine() 块

我正在使用BufferedReader.readLine()方法从远程服务器读取响应(它是用 C 编写的,我无法访问源代码)。

但它总是在最后一行阻塞,直到超时。所以我使用了以下代码:

我发现最后一个字节读取的整数值为13,我认为这是一个回车,对吧?

那么为什么readLine方法会阻塞呢?服务器通常如何发出到达流结束的信号?谢谢。