filechannel相关内容

多个线程可以在 Java 中看到直接映射的 ByteBuffer 上的写入吗?

我正在研究使用 ByteBuffers 从内存映射文件构建(通过 FileChannel.map()) 以及内存中的直接 ByteBuffers.我正在尝试了解并发和内存模型约束. 我已经阅读了 FileChannel、ByteBuffer、MappedByteBuffer 等所有相关的 Javadoc(和源代码).很明显,一个特定的 ByteBuffer(和相关的子类)有一堆字段,状态不受 ..

FileChannel的缺点-> BufferedReader->读者

FileChannel将比BufferedReader快,BufferedReader将比Reader快,因为FileChannel和BufferedReader切断了一些立即步骤来接收数据. 我的问题是:优势是显而易见的,但是我看不到网络上有任何消息说它的劣势. (从FileChannel到BufferedReader,BufferedReader到Reader).当我们中断两者之间的中间 ..
发布时间:2020-06-14 19:23:57 Java开发

使用mp4parser,如何处理从Uri和ContentResolver拍摄的视频?

背景 我们想让用户从任何应用程序中选择一个视频,然后将视频修剪到最多5秒钟. 问题 要选择一个Uri,我们可以使其正常运行(解决方案 此处 ). 对于修整本身,我们找不到具有许可许可的任何好的库,除了一个名为可悲的是,这个库(k4l-video-trimmer)很旧,多年没有更新,因此我不得不对其进行分叉(此处),以便更好地进行处理.它使用名为 "mp4parser" 的开 ..

尝试同时读取时,Java滚动文件创建失败

我正在使用java.util日志记录类来创建滚动文件追加器.我想创建一个日志读取器,在将数据写入它们时从这些日志中读取数据. 滚动日志追加程序代码本身可以正常工作.但是,一旦启动阅读器线程,就不会创建新文件,即,如果滚动日志附加程序设置为使用5个文件,它将创建1og.0,log.1,log.2等,但是如果阅读器线程启动,那么它将仅创建create log.0没有创建其他文件.我在Java日志 ..
发布时间:2020-05-18 00:18:09 Java开发

FileChannel#强制和缓冲

我想说清楚并立即在FileOutputStream和FileChannel之间绘制一些相似之处。 首先,它似乎效率最高使用标准Java io编写文件的方法是使用包含BufferedOutputStream 的FileOutputStream。因为它会自动刷新,当内部缓冲区溢出时。能够进行单次写入(单字节,浮点数等)以及数组写入并且不担心速度是很方便的。你唯一不应该忘记的是关闭它(进行最后的冲 ..
发布时间:2019-01-02 23:08:31 Java开发

我应该关闭FileChannel吗?

我今天遇到了一个实用程序类的问题。它是文件的帮助程序,包含一些静态文件复制例程。以下是与测试方法一起提取的相关方法。 问题是有时setLastModified调用失败,返回false。 在我的电脑上(Windows 7,最新的Java)我有时会收到“setLastModified failed”消息(1000次中约25次)。 我有通过删除FileChannel.close调用来解 ..
发布时间:2019-01-02 11:27:53 Java开发

Java NIO通过ByteBuffer扫描某些字节和带有节的字

好吧,所以我正在尝试做一些看起来应该相当简单的事情,但是对于这些新的NIO接口,事情让我感到困惑!这是我正在尝试做的事情,我需要扫描一个文件作为字节,直到遇到某些字节!当我遇到那些特定的字节时,需要抓住那段数据并用它做一些事情,然后再继续这样做。我本以为在ByteBuffer中有了所有这些标记,位置和限制,我能够做到这一点,但我似乎无法让它工作!这是我到目前为止所拥有的...... test ..
发布时间:2018-12-22 20:23:17 Java开发

从FileChannel(Java NIO)读取GZIP文件

我需要在给定FileChannel的情况下读取/解压缩.gz文件。 我使用GZIPInputStream解压缩GZIP档案,但这不会占用FileChannel。我没有访问FileChannel的原始FileInputStream。 如果有人能告诉我一个好方法(或至少任何 改编自 Sun Oracle论坛。 解决方案 您可以在FileChannel周围获取包装InputSt ..
发布时间:2018-12-10 23:23:00 Java开发

从分隔文件中删除第一行

我有一个可以包含数百万条记录的分隔文件,现在我想从分隔文件中删除第一行,然后再处理它。 第一行的长度是可变的,它根据文件类型而不同。现在我已经对FileChannel和RandomAccessFile进行了读取,删除第一行的最佳方法。 但我无法弄清楚,如何得到第一行的长度并删除它。 解决方案 不要删除它,只要读取和忽略。您必须准备文件,因为文件处理单元无法处理具有不正确的第一行 ..
发布时间:2017-11-04 22:34:35 Java开发

Java NIO MappedByteBuffer OutOfMemoryException

我真的很麻烦:我想用 FileChannel s和 MappedByteBuffer s来读取超过几GB的巨大文件 - 我发现的所有文档都意味着使用 FileChannel.map()方法映射文件相当简单。 当然,有2GB的限制,因为所有的Buffer方法都使用int来表示位置,限制和容量 - 但是系统默认的限制低于这个限制吗? 实际上,我发现很多关于 OutOfMemoryExcepti ..
发布时间:2017-11-04 21:07:00 Java开发

多线程能否在Java中的直接映射的ByteBuffer上看到写入?

我正在使用 ByteBuffers 制作的内容内存映射文件(通过 FileChannel.map())以及内存中的直接ByteBuffers。我试图理解并发和内存模型约束。 我已经读过所有相关的Javadoc(和源)像FileChannel,ByteBuffer,MappedByteBuffer等。看起来很清楚,一个特定的ByteBuffer(和相关的子类)有一堆字段,并且状态不受内存模型的 ..

需要AssetInputStream转换的FileInputStream

我已经实现了这是工作在我的电脑上的数据结构,现在我想将它移植到我的Andr​​oid应用程序。我打开原始 .DAT 资源,并获得的InputStream ,但我需要一个的FileInputStream : 的FileInputStream FIP =(的FileInputStream)context.getResources()openRawResource(FILEID)。 FileChann ..
发布时间:2015-12-06 22:07:21 Java开发