filechannel

    3热度

    5回答

    我有一个大的(3Gb)二进制文件的双打,我访问(或多或少)随机在一个迭代算法,我写了聚类数据。每次迭代都会从文件中读取大约50万次,并且大约写入100k次新值。 我创建FileChannel这样的... f = new File(_filename); _ioFile = new RandomAccessFile(f, "rw"); _ioFile.setLength(_extent * BL

    0热度

    1回答

    我正在使用java.util日志记录类创建滚动文件appender。我想创建一个日志阅读器,在数据写入它们时从这些日志中读取数据。 滚动日志appender代码自行正常工作。但是一旦我启动读取器线程,就不会创建新文件,即如果将滚动日志appender设置为使用5个文件,它将创建1og.0,log.1,log.2等,但是如果读取器线程启动,创建日志0,不会创建其他文件。我在java日志记录和log4

    3热度

    6回答

    我使用ByteBuffers和FileChannels将二进制数据写入文件。当为大文件或连续多个文件做这件事时,我会遇到一个例外情况OutOfMemoryError。 我读过其他地方,使用Bytebuffers与NIO已损坏,应该避免。你们有没有遇到这种问题,并找到一种解决方案来高效地将大量二进制数据保存在java文件中? jvm选项-XX:MaxDirectMemorySize要走的路吗?

    7热度

    2回答

    我需要读取/解包给定FileChannel的.gz文件。 我玩过使用GZIPInputStream提取GZIP压缩文件,但是这不会占用FileChannel。我无法访问FileChannel从中取得的原始FileInputStream。 如果有人能告诉我一个很好的方法(或至少任何方式)从FileChannel读取GZIP,我将不胜感激。 改编自 Sun Oracle forums上的一个问题。

    1热度

    1回答

    我试图在本地保存在线流,然后从我的本地节点分发流。 程序流程:一个URL,URL测试 首先请求,创建一个单一的作家螺纹,其开始与文件名称,网址,文件写入到文件系统。所有后续对该URL的请求url-test都是从本地文件系统处理的。 写线程 protected class Writer implements Runnable { String url; public void

    5热度

    6回答

    我有以下代码: String inputFile = "somefile.txt"; FileInputStream in = new FileInputStream(inputFile); FileChannel ch = in.getChannel(); ByteBuffer buf = ByteBuffer.allocateDirect(BUFSIZE)

    3热度

    2回答

    我正在对正在使用的库进行一些更改。为了减少内存使用量,磁带库将其临时数据写入磁盘,而不是将其保存在内存中。但是,对于我的使用场景,将其保存在内存中效率更高。它也有一些并发问题,因为它的临时文件具有不变的名称,因此不能在不同的线程中同时运行(因为线程会损坏对方的数据)。 因此,我需要更改库,以便它将所有数据保存在内存中。我最初并没有编写这个库,因此我对编写代码做出了很大的改变并不是很舒服。因此,我希