问题标签 [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.
classpath - 从Java中的jar文件访问文件的问题
我有一个名为 App.jar 的 jar,它的结构如下
现在我想要的是我想config.properties
从MyClass.class
java - 删除之前的 XML 文件,直到使用 Java 生成新文件
定期使用PrintWriter将数据来自数据库的数据写入指定位置的 xml 文件。在当前运行中完全完成 xml 的生成之前,我不想删除现有的 xml 文件,因为如果在生成 xml 时出现任何问题,我将没有 xml 文件。希望有关处理这种情况的任何建议,其中当前文件的删除将推迟到在当前运行中生成/写入文件完全完成。
java - 在java中将图像拼接在一起
我正在尝试使用 java 将一些图像拼接在一起。我有一堆我想拼接在一起的图像,它们都是相同的尺寸,所以我想这实际上只是一个将它们排列在一起的问题。我让它工作,但它很慢,可能非常占用内存。我想知道是否有更简单的方法:
java - 如何让 java.io.Console 显示默认值以供用户确认或修改?
新的http://download.oracle.com/javase/6/docs/api/java/io/Console.html类对于来自控制台的用户输入似乎没问题,但是,它似乎无法读取一行,但是默认已提交(因此用户只需按 Enter 确认或删除即可修改)。
我怎样才能在课堂上做到这一点?
java - 限制每秒方法调用次数(达到限制时拒绝)
我有一个执行一些 IO 的方法,我想限制对该方法的调用(每秒),以避免后端获得它无法处理的并发请求突发。
如果要求没有“每秒”,我可以只使用一个堆栈(基本上只是一个计数器),并offer()
在开始请求时以及poll()
完成时使用。有了“每秒”的要求,我不知何故需要清理堆栈上比给定时间流逝更旧的插槽。
我该如何正确地做到这一点?显然,该结构应该是线程安全的。
感谢您的时间!
java - 减少java代码中打开文件的数量
嗨,我有一些使用块的代码
但该应用程序的具体情况是我必须生成大量临时文件,平均超过 4000 个(用于 Hive 插入分区表)。
问题是有时我会捕获异常
在应用程序运行期间。
如果有任何方法可以告诉操作系统该文件已经关闭并且不再使用,我会问为什么
不会减少打开文件的数量。有没有办法在 Java 代码中做到这一点?
我已经增加了打开文件的最大数量
更新: 我试图消除这个问题,所以我分开代码来调查它的每一部分(创建文件,上传到配置单元,删除文件)。
使用类 'File' 或 'RandomAccessFile' 失败,出现“打开的文件太多”异常。
最后我使用了代码:
这适用于大量文件(在 20K 上测试,每个文件大小为 5KB)。代码本身不会像前两个类那样抛出异常。但是生产代码(带有配置单元)仍然有例外。看来,通过 JDBC 的配置单元连接是它的原因。我会进一步调查。
java - 如何找出用于分割行的行分隔符 BufferedReader#readLine()?
我正在通过 BufferedReader 读取文件
我需要知道这些行是否由 '\n' 或 '\r\n' 分隔,有什么办法可以找到吗?
我不想打开 FileInputStream 所以最初扫描它。理想情况下,我想问 BufferedReader,因为它必须知道。
我很高兴覆盖 BufferedReader 来破解它,但我真的不想打开文件流两次。
谢谢,
注意:当前行分隔符(由 System.getProperty("line.separator") 返回)不能使用,因为该文件可能已由另一个操作系统上的另一个应用程序写入。
java - FileInputStream.read(byte[]) 有什么问题?
在回答我对文件阅读问题的回答时,一位评论者表示FileInputStream.read(byte[])
“不保证会填满缓冲区”。
(代码假设文件长度不超过2GB)
除了IOException
,还有什么可能导致该read
方法无法检索整个文件内容?
编辑:
代码的想法(以及我回答的问题的 OP 的目标)是一口气将整个文件读入一块内存,这就是为什么buffer_size = file_size。
java - 使用Java从二进制文件中读取整数值
我正在尝试使用方法写入大于 256 的值DataOupPutStream.write()
。当我尝试使用它读取相同的值DataInputStream.read()
时,它将返回 0。因此,我使用DataOutputStream.writeInt()
和DataInputStream.readInt()
方法来写入和检索大于 256 的值,它工作正常。
请参阅下面的代码片段,我想知道编译器在语句in.readInt()
内部的行为。while
我运行此代码段时的输出是:
但是当我在调试模式下运行时,我得到以下输出:
java - 套接字:BufferedReader readLine() 块
我正在使用BufferedReader.readLine()
方法从远程服务器读取响应(它是用 C 编写的,我无法访问源代码)。
但它总是在最后一行阻塞,直到超时。所以我使用了以下代码:
我发现最后一个字节读取的整数值为13,我认为这是一个回车,对吧?
那么为什么readLine
方法会阻塞呢?服务器通常如何发出到达流结束的信号?谢谢。