问题标签 [randomaccessfile]
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.
java - 在二进制流中搜索字符串(作为字节 [])
嗨团队,我正在尝试在二进制文件中查找字符串“Henry”并将字符串更改为不同的字符串。仅供参考,该文件是对象序列化的输出。原始问题在这里
我是搜索字节的新手,并想象这段代码会搜索我的 byte[] 并交换它。但它并没有接近工作它甚至没有找到匹配项。
好的,我看到了bytesHenry==seekHenry
问题,将换到Arrays.equals( bytesHenry , seekHenry )
我想我每次读取 5 个字节时都需要移动 -4 个字节的位置。
宾果游戏它现在找到了
java - 在 java 中使用 RandomAccessFile 写入非英文字符
我正在尝试使用 RandomAccessFile 对象将一些文本写入文件,但非英语字符未正确保存。
具体来说,这句话 --> "und NotenstEnder Libero"
像这样保存 --> "und Notenst•nder Libero"
其中'E'字符不是英文(我认为ascii代码是917)。
我正在使用的代码是这样的:
我怎样才能避免这种情况并写出正确的文字?
(PS:我知道file.writeChars,我想知道是否还有其他方法!)
java - RandomAccessFile 类如何使用 randomAccessFile.read() 方法返回字节;
我正在使用谷歌翻译,我希望这个问题很好理解。
有一件事我不了解随机访问文件。不了解程序是如何工作的,但它可以工作。
这是我的程序:
在第 1 行中,我在 read 中访问文件 在第 2 行中,我创建了一个与文件大小相同的字节数组对象 在第 3 行中读取字节数组
但绝不会转储字节数组上的文件。
我认为该程序应类似于:
java文档说:
只返回字节数而不是字节数。
有人可以向我解释这一行如何使用此语句转储 byte [] 变量文档中的字节?
谢谢!!
//------------------------------------------------ ------------------------------
另一个例子:
我将此方法与 BufferedReader 进行比较:
BufferedReader 读取一行并将其传递给一个字符串。
我可以看到这个将文件内容传递给变量的 java 语句。
但我没有看到其他声明:
刚刚阅读,内容不会在任何地方通过该行...
java - 使用 RandomAccessFile 将数据写入文件
我正在使用 RandomAccessFile 写入文件。数据(字段)以固定的字段长度存储,例如,每个字段将分配 16 个字节的空间。我通过使用 seek() 将指针指向适当的位置来写一些东西。当我覆盖某些字段时出现问题,即,如果“Bangalore”存储较早,如果用“Delhi”覆盖它,结果是“Delhilore”。在写“Delhi”之前如何完全删除“Bangalore”?
如果值是我要写的字符串,长度是固定字段长度(16)
java - 从 ObjectInputStream 读取数据时获取文件指针位置
从二进制文件中读取时,我需要获取当前的文件指针位置(以字节为单位)。我使用 编写文件ObjectOutputStream
,现在我需要读取它并记住每个对象的字节位置。
但是:ObjectInputStream
不提供读取指针位置的方法,并且RandomAccessFile
无法读取对象:(
如果您认为有办法,甚至是解决方法,这些额外信息可能会有所帮助:
我已将 ID 存储在我的文件中。每个 ID 至少列出一个节点(可以是多个节点)。全部作为长值。
例如:
每个 ID 都是一个单独的对象,它将 id 值本身存储为 long 值,节点存储为ArrayList<Long>
.
第二个文件存储节点并列出每个节点的父 ID。像这样:
背后的想法是:每当我知道一个 ID 并想知道有关节点的信息时,我都会查看哪个节点位于节点文件中的特定位置。每当我知道节点并想进一步了解其父 ID 时,我都会查看 ID 文件中的具体位置。
然而,目前我只是将 ID 和节点值本身写入文件中,使用它们作为“索引”。
如果那是我要查找的 ID,我不想逐行查看,因为这些文件可能会变得非常大(GB 大小)。如果我记住另一个文件的字节位置而不是行索引左右会更容易,因为我可以使用 skip() 或类似方法简单地跳转到它。
结论:如何在读取时从下一个对象的开头获取文件指针位置(以字节为单位)ObjectInputStream
?
java - linux下的Java RandomAccessFile.java不能正常工作
我试图在 java 中实现简单的 tail -f linux 命令。这是我的代码。
问题是在 linux 操作系统下,file.read(bytes, 0, size)
总是返回 -1,而在 Windows 下,相同的代码片段工作得很好(总是打印新行)。
编辑:
我通过raFile = new RandomAccessFile(file, "r");
在每次迭代中添加来解决问题。
不知道为什么,但现在在 Linux 下也可以正常工作。谢谢你们的努力
java - 使用 RandomAccessFile 删除文件内容
我有一个包含很多零的文件,根据要求,文件中的零无效。我正在使用RandomAccessFile api 来定位文件中的数据。有没有办法可以使用相同的api从文件中删除所有零。
java - 试图覆盖文件中间的数据而不影响文件的开头
我有一个算法可以乱序计算向量的分量(字节)。我将向量存储在一个文件中,因为当我真正运行它时,向量将是数百万字节长。但作为一个简化的例子,我想从一个空文件开始:
-1 -1 -1 -1 -1 -1 -1 -1
然后我的算法将一次填写两个值:
-1 -1 4 7 -1 -1 -1 -1
然后
-1 -1 4 7 -1 -1 3 9
等,直到所有的值都被填写。这可能吗?我尝试过使用随机访问文件,但是当您使用 seek() 方法时,它会在我要编辑的值之前为所有值填充 0,从而删除我的算法之前所做的任何计算。由于我需要这个程序来处理大量的数字序列,所以不能将整个文件拉入内存。有任何想法吗?
java - 如何使用 RandomAccessFile 从文件中读取字符串?
我的文件内容包含四列
001 迈克 1122 98
002 斯蒂芬 1232 97
使用RandomAccessFile我需要将每一列存储在其各自的数组类型中。
readInt() 用于读取第 1 列的整数
我如何读取字符串(第 2 列)以存储在字符串数组中?
java - Persisting B-Tree nodes to RandomAccessFile
My project is trying to write a B-Tree. I am having trouble persisting nodes of the tree to a random access file. I am constantly encountering EOFexceptions
and StreamCorruptionExceptions
.
some resources that I am currently using are:
Converting any object to a byte array in java
https://inaved-momin.blogspot.com/2012/08/understanding-javaiostreamcorruptedexce.html
current Problem: reading a link position from a node and then trying to read it from the random access file is causing a StreamCorruptionExceptions
.
Goal: to be able to access all node in the random access file,modify and write them back to the random access file.
Test.java
Node.java