Tag: 寻求

在二进制流中搜索字符串(作为byte )

嗨团队,我试图在二进制文件中找到一个字符串“亨利”,并将字符串更改为不同的字符串。 FYI文件是对象序列化的输出。 原始问题在这里 我是新手搜索字节,想象这个代码会搜索我的byte []并交换它。 但它并没有接近工作它甚至找不到匹配。 { byte[] bytesHenry = new String(“Henry”).getBytes(); byte[] bytesSwap = new String(“Zsswd”).getBytes(); byte[] seekHenry = new byte[bytesHenry.length]; RandomAccessFile file = new RandomAccessFile(fileString,”rw”); long filePointer; while (seekHenry != null) { filePointer = file.getFilePointer(); file.readFully(seekHenry); if (bytesHenry == seekHenry) { file.seek(filePointer); file.write(bytesSwap); break; } } } 好的,我看到bytesHenry==seekHenry问题,并将交换到Arrays.equals( bytesHenry , seekHenry ) 我想每次读取5个字节时我需要移动-4个字节的位置。 […]

FileInputStream.skip()是否进行搜索?

我想将最后10MB的可能大文件复制到另一个文件中。 理想情况下,我会使用FileInputStream,skip()然后read()。 但是我不确定skip()的性能是否会很糟糕。 skip()通常是使用下面的文件搜索实现的,还是实际读取和丢弃数据? 我知道RandomAccessFile,但我对是否可以使用FileInputStream代替它感兴趣(RandomAccessFile很烦人,因为API是非标准的)。