繁体   English   中英

Java:我在哪里可以找到高级文件操作源/库?

[英]Java: Where can I find advanced file manipulation source/libraries?

我正在将任意字节数组(模拟32个字节的病毒签名)写入任意文件,我需要代码来覆盖给定文件偏移量的特定文件。 我的具体问题是:是否有可用于执行此特定任务的源代码/库?

我也遇到过Python文件操作的问题。 我正在寻找一组可以杀死一行,剪切/复制/粘贴等功能。我的假设是这些是非常常见的任务,我在Java API和谷歌搜索中都找不到它。

很抱歉没有RTFM; 我没有遇到任何信息,我一直在寻找一段时间。

也许您正在寻找标准Java JDK中的RandomAccessFile类。 它支持某些偏移量的读写,以及字节数组。

Java的RandomAccessFile正是你想要的。

它包括seek(long)等方法,允许您在文件中的任何位置移动。 它还允许同时进行读写。

据我所知,Java主要有较低级别的函数来直接操作文件。 这是我提出的最好的

  1. 您描述的操作在Swing世界中是标准的,而文本则归结为操纵Document对象。 它们对内存中的数据起作用。 java.nio.channels.FileChannel具有直接作用于文件的类似方法。 既没有自动结束行,也没有java.iojava.nio其他类。

  2. Apache Commons有一个名为Flatfile的沙箱库,它看起来像你想要的那样。 问题是尚未发布任何代码。 但是,您可能希望与工作人员交谈,以获得更多想法。 我没有对图书馆进行一般性检查。

你看过File / FileReader / FileWriter / BufferedReader吗? 您可以获取文件的内容并根据需要进行操作,您可以搜索文件中的数据,可以覆盖文件,创建新文件,附加到现有文件....

我不确定这正是您所要求的,但我一直使用这些API进行日志记录,RTF编辑器,电子邮件的文本文件创建以及许多其他内容。

至于剪切/复制/过去,我没有遇到直接这样做的能力,但是,你可以输出文件的内容并“复制”你想要的那部分并将其“粘贴”到一个新的文件,或将其附加到现有文件。

将字节数组写入文件是一项常见的任务,只写一次给定文件32字节字节数组只是你在java.io中找不到的东西:)

首先,以下方法和评论对您来说是否合理? 我打赌有人在这里,甚至是我自己,可以快速地鞭打它。

public static void writeFauxVirusSignature(File file, byte[] bytes, long offset) {
    //open file
    //move to offset
    //write bytes
    //close file
}

问题:

  • 潜在的目标文件有多大?
  • 你需要表现吗?

我问,因为干净,易于阅读的代码将使用Apache Commons lib,但在性能敏感的环境中进行大文件写入将需要使用java.nio

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM