问题标签 [fileoutputstream]

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 投票
2 回答
405 浏览

java - 使用 java.io 高效序列化原生 java 数组

我必须对 Java 序列化提出疑问。

我只是使用 FileOutputStream 和 BufferedOutputStream 结合 Dataoutputstream 将 10 个大小为 int[] array = new int[2^28] 的数组写入我的硬盘(我知道这有点大,但我需要它) . 在每次序列化之前,我创建一个新的 FileOutputstream 和所有其他流,然后我关闭并刷新我的流。

问题:第一次序列化大约需要 2 秒,之后它会增加 tp 17 秒并保持在这个级别。这里有什么问题?如果我进入代码,我可以看到 FileOutputStreams 为 writeByte(...) 花费了大量时间。这是由于硬盘缓存(完整)吗?我怎样才能避免这种情况?我可以清除它吗?

这是我的简单代码:

其中 dataOut.write(int[], 0, end)

和 `protected void checkBuf(int need) throws IOException {

BufferedDataOutputStream 扩展了 BufferedOutputStream 与 fit 框架一起提供。它只是将 BufferedOutputStream 与 DataOutputStream 结合起来,以减少编写大数组时的方法调用次数(这使其速度更快......最多 10 倍......)。

这是输出:

起始基准

开始运行 0

2.001972271

开始运行 1

1.986544604

开始运行 2

15.663881232

开始运行 3

17.652161328

开始运行 4

18.020969301

开始运行 5

11.647542466

开始运行 6

为什么时间会增加这么多?

谢谢,

埃斯

0 投票
8 回答
62628 浏览

java - 如何覆盖 .properties 中的一个属性而不覆盖整个文件?

基本上,我必须通过 Java 应用程序覆盖 .properties 文件中的某个属性,但是当我使用 Properties.setProperty() 和 Properties.Store() 时,它会覆盖整个文件,而不仅仅是那个属性。

我尝试使用 append = true 构建 FileOutputStream,但它添加了另一个属性并且不会删除/覆盖现有属性。

如何对其进行编码,以便设置一个属性覆盖该特定属性,而不覆盖整个文件?

编辑:我尝试读取文件并添加到它。这是我更新的代码:

0 投票
2 回答
4643 浏览

java - 如何将 actionlistener 放到 JOptionpane.showInputDialog 的 OK 按钮上?

我有一个 showInputDialog。每当我在该字段中键入内容时,我希望在单击确定按钮时将其保存为文本文件。我的问题是我不知道在哪里/如何放置听众。

有人可以帮我解决这个问题吗?

0 投票
1 回答
1176 浏览

java - 如何保存文本文件而不覆盖?

我想保存在文本文件中而不覆盖当前数据。我的意思是,每当我保存时,将要保存的下一个数据将转到新行/下一行,这是我的问题,我不知道该怎么做。

有人可以帮我解决这个问题吗?

这是 save() 方法中的代码:

0 投票
1 回答
1726 浏览

java - 使用 DataInputStream 接收文件信息并写入

我正在尝试接收客户端使用 DataInputStream 发送的文件并将其写入文件。

(客户端使用 DataInputStream write(byte[], len, off) 方法发送文件)

这是我正在尝试做的事情,但它没有收到完整的数据。

我知道上面的实现可能并不优雅。

但我对java真的很陌生,所以请不要对我说不好的风格

(如果你知道的话,我真的很感激你推荐更好的)

结果文件只有 4KB 而它应该是 401KB

我应该如何修复此代码,以便我的代码可以正常工作?

非常感谢您。

0 投票
1 回答
467 浏览

java - 无法将 Jar 文件的内容写入 Tomcat 7.0.22 上的本地 Servlet

下午好,

我正在尝试以编程方式提取 jar 文件的内容,并在 此处找到了一个代码片段,它允许我在不使用 servlet 的情况下在本地计算机上提取 jar 文件的内容。

现在我知道代码可以工作,我正在尝试在本地 servlet 环境中使用它,特别是 Tomcat 7.0.22。到目前为止,我有下面的代码,但无法输出 jar 的内容。我相信我没有正确处理输出流,这就是为什么我的本地 Tomcat 服务器的本地目录中没有保存任何内容。

谁能指出我正确的方向或就如何更正代码以将读取的内容输出到文件提供一些建议?

}

非常感谢您提供的任何帮助。

周末愉快!

0 投票
10 回答
34979 浏览

hadoop - 如何再次覆盖/重用 Hadoop 作业的现有输出路径

当我每天运行我的 Hadoop 作业时,我想覆盖/重用现有的输出目录。实际上输出目录将存储每天作业运行结果的汇总输出。如果我指定相同的输出目录,则会给出错误“输出目录已存在”。

如何绕过此验证?

0 投票
2 回答
10605 浏览

java - 写入大文件时 FileOutputStream.close 真的很慢

我有一个使用以下代码通过 TCP 套接字接收文件的方法:

FileOutputStream.close 在接收大文件时需要很长时间,这是为什么呢?如您所见,我在每个收到的块处刷新流..

0 投票
2 回答
10720 浏览

android - FileOutputStream 因 FileNotFoundException 而失败,即使 File 显然存在、可写且具有权限

虽然我对 Android 比较陌生,但我有基于 Java 和 C 的编程经验,我目前正在使用 Eclipse 和常用工具集进行开发。我已经阅读了有关该主题的大部分帖子,并且我相信我已经包含/应用了所有建议和测试。我以前使用 FileOutputStream 写入内部的、特定于应用程序的文件,为 L8 构建,没有任何问题。我现在正在尝试使用 Build L7 for Android 2.1 写入 SD 卡上的文件。以下代码来自我用来测试基本代码的带有 3 个按钮(写入、读取和发送)的单个活动。尽管导致 FileOutputStream (FOS) 构造函数的所有包含的测试(存在、可写和在 createNewFile 或 mkdirs 上的 IOException)都通过 AOK,但 FOS 构造失败,抛出 FileNotFoundException,见下文。我已经调试并确认了问题,请参阅底部的 LogCat。这是通过 ADB 在 Eclipse 标准模拟器上运行的,其中包含 256kB 的构建中的 SD 卡。

从我的 onw createExternalStorageFile() 方法。

>

我的清单文件包含使用权限声明,如下所示:

>

>

所以这在声明之外,应该可以吗?

任何人都可以帮助解决为什么 FileOutputStream 失败的谜题,即使我的所有测试似乎都确认它应该工作?

> LogCat: 11-02 15:40:54.754: DEBUG/MediaScannerService(154): 开始扫描外部卷 11-02 15:40:54.764: VERBOSE/MediaProvider(154): /sdcard 卷 ID: 300427547 11-02 15: 40:54.894:INFO/System.out(202):调试器已解决 (1479) 11-02 15:40:55.024:VERBOSE/MediaProvider(154):附加卷:外部 11-02 15:40:55.904:VERBOSE/ MediaScanner(154): pruneDeadThumbnailFiles...android.database.sqlite.SQLiteCursor@44c434f0 11-02 15:40:55.915:VERBOSE/MediaScanner(154):/pruneDeadThumbnailFiles...android.database.sqlite.SQLiteCursor@44c434f0 11- 02 15:40:55.925:DEBUG/MediaScanner(154):预扫描时间:715ms 11-02 15:40:55.955:DEBUG/MediaScanner(154):扫描时间:4ms 11-02 15:40:55.955:DEBUG/MediaScanner (154):后扫描时间:55ms 11-02 15:40:55.955:DEBUG/MediaScanner(154):总时间:774ms 11-02 15:40:55。964:调试/MediaScannerService(154):完成扫描卷外部 11-02 15:44:50.934:调试/KeyguardViewMediator(52):pokeWakelock(5000) 11-02 15:44:51.334:调试/KeyguardViewMediator(52):pokeWakelock (5000) 11-02 15:44:51.384: INFO/ActivityManager(52): 显示的活动 org.eddiem.adeveloper.filesendl7/.FileSendL7Activity: 239793 ms(总共 255760 ms)11-02 15:44:51.394: INFO/ ARMAssembler(52): generated scanline__00000077:03545404_00000A04_00000000 [ 29 ipp] (51 ins) at [0x46ac60:0x46ad2c] in 757079 ns 11-02 15:44:51.414: INFO/ARMAssembler(52): generated scanline__00000177:03515104_00001A01_00000000 [ 73 ipp] (98 ins) at [0x46ad30:0x46aeb8] in 657626 ns 11-02 15:45:05.884: DEBUG/FileSendL7Activity(202): 完整文件路径是: /sdcard/testFile.txt 11-02 15:45:22.484:错误/FileSendL7Activity(202):fOS-FileNotFoundException 11-02 15:45:22.484:错误/FileSendL7Activity(202):java.io.FileNotFoundException:/sdcard/testFile.txt 11-02 15:45:22.484:错误/FileSendL7Activity(202):在 org.apache.harmony.luni.platform.OSFileSystem。打开(OSFileSystem.java:244)11-02 15:45:22.484:错误/FileSendL7Activity(202):在 java.io.FileOutputStream.(FileOutputStream.java:97)11-02 15:45:22.484:错误/FileSendL7Activity (202): 在 java.io.FileOutputStream.(FileOutputStream.java:168) 11-02 15:45:22.484: 错误/FileSendL7Activity(202): 在 java.io.FileOutputStream.(FileOutputStream.java:147) 11- 02 15:45:22.484: 错误/FileSendL7Activity(202): 在 org.eddiem.adeveloper.filesendl7.FileSendL7Activity.creatExternalStorageFileOS(FileSendL7Activity.java:149) 11-02 15:45:22.484: 错误/FileSendL7Activity(202): 在org.eddiem.adeveloper.filesendl7.FileSendL7Activity。访问$0(FileSendL7Activity.java:124)11-02 15:45:22.484:错误/FileSendL7Activity(202):在 org.eddiem.adeveloper.filesendl7.FileSendL7Activity$1.onClick(FileSendL7Activity.java:176)11-02 15: 45:22.484:错误/FileSendL7Activity(202):在 android.view.View.performClick(View.java:2364)

>

谢谢

0 投票
1 回答
6190 浏览

java - 在java中,如何从输入流中读取固定长度并保存为文件?

在java中,如何从输入流中读取固定长度并保存为文件?例如。我想从 inputStream 中读取 5M,并保存为 downloadFile.txt 或其他。(BUFFERSIZE=1024)