`
Jacular
  • 浏览: 182559 次
  • 性别: Icon_minigender_1
  • 来自: 云南
社区版块
存档分类
最新评论

操作文件内容, 访问文件任意位置

    博客分类:
  • java
阅读更多
1)Java 文件模型, 文件是byte by byte 是数据集合
data : 41 42 00 00 00 ff d6 d0 ...
index : 0 1 2 3 4 5 6 7 8
pointer: ^
2) 打开文件, 有两种模式"rw", "r"
RandomAccessFile raf = new RandomAccessFile(file, "rw");
打开文件时候默认文件指针在开头pointer=0
写入方法: raf.write(int) 将整数的"低八位"写入到文件中, 指针
自动移动到下一个位置, 准备再次写入
* 文件名的扩展名要明确指定, 没有默认扩展名现象!
任务: A 在demo 文件夹中创建raf.dat
B 打开这个文件
C 写入'A' 和'B'
D 写入整数255 占用4 个byte
E 写入GBK 编码的'中', d6d0

File demo = new File("demo");
if(!demo.exists()){
demo.mkdir();
}
File file = new File(demo, "raf.dat");
if(! file.exists()){
file.createNewFile();
}
RandomAccessFile raf =
new RandomAccessFile(file,"rw");
System.out.println(raf.getFilePointer()); //0
raf.write('A');// 0041 -> 00000041 -> 41
System.out.println(raf.getFilePointer());//1
raf.write('B');
int i = 0x7fffffff;// 7f ff ff ff
//raf.write(i>>>24);// i>>>24 00 00 00 7f
//raf.write(i>>>16);// i>>>16 00 00 7f ff
//raf.write(i>>>8);// i>>>8 00 7f ff ff
//raf.write(i);// i 7f ff ff ff
raf.writeInt(i);
String s = "中";//4e2d
byte[] gbk = s.getBytes("gbk");
//gbk = {d6, d0}
raf.write(gbk);
raf.close();

4) 读取文件
int b = raf.read() 从文件中读取一个byte(8 位) 填充到int
的低八位, 高24 位为0, 返回值范围正数: 0~255, 如果返回-1 表示
读取到了文件末尾! 每次读取后自动移动文件指针, 准备下次读取.
任务1: A 只读打开文件, 移动到int 数据位置
B 连续读取4 个byte, 拼接为int (反序列化)
RandomAccessFile raf =
new RandomAccessFile("demo/raf.dat", "r");
int i = 0;
raf.seek(2);//移动到int 位置
i = raf.readInt();
System.out.println(Integer.toHexString(i));
raf.close();
5) 文件读写完成以后一定关闭文件
分享到:
评论

相关推荐

    labview打开任意类型文件

    8. **自定义VI**:"打开任意类型文件LV8.6.vi"很可能是一个自定义的LabVIEW VI,它封装了上述的文件I/O过程,并可能提供了用户友好的界面,允许用户选择任意类型的文件并进行操作。此VI可能是通过判断文件扩展名,...

    C语言文件操作深度解析:实现文件的随机访问

    在C语言中,文件的随机访问是指不必按顺序从头到尾读取文件,而是可以直接定位到文件的任意位置进行读写操作。这种能力对于处理大型文件或需要重复访问文件特定部分的应用场景非常有用。本文将详细介绍C语言中实现...

    任意文件转换成C语言数组

    在IT行业中,有时候我们需要将小文件直接嵌入到程序中,以便在运行时可以方便地访问这些数据。标题提到的“任意文件转换成C语言数组”就是解决这类问题的一个方法。这种方法允许我们将文件内容编码为C语言数组,使得...

    linux下文件操作

    1. 普通文件是存储在磁盘上的常规数据文件,它允许用户进行随机访问,即通过指针定位到文件中的任意位置进行读写。在Linux下,普通文件的读写可以通过文件指针进行。 2. 管道是一种特殊类型的文件,它用于进程间...

    任意文件下载知识点总结.zip

    2. **限制文件访问权限**:设置正确的文件系统权限,防止非授权用户访问敏感区域。 3. **使用安全编程实践**:在开发时遵循最小权限原则,避免在URL中直接暴露文件路径。 4. **定期审计**:定期进行安全审计,及时...

    任意文件转C数组工具

    这个工具的目的是方便地将外部数据嵌入到C代码中,以便在程序运行时可以直接访问这些数据,而无需额外的文件读取操作。 首先,我们要理解C数组的概念。在C语言中,数组是一种存储同类型元素序列的数据结构。它提供...

    任意文件转C语言数组 二进制BIN文件、图片转数组

    标题“任意文件转C语言数组 二进制BIN文件、图片转数组”所指的就是这个过程,即将非文本格式的数据(如二进制文件、图片)转换为C语言的字符数组形式,以便于在C代码中直接使用。这样的操作对于单片机编程尤其有用...

    通达OA任意文件上传_文件包含GetShell1

    - 为避免此类漏洞,开发人员应确保对文件上传功能进行严格的安全控制,如验证文件类型、大小和内容,以及限制文件的存储位置。同时,应定期更新和打补丁,以修复已知的安全问题。对于敏感系统,还应启用身份验证和...

    文件传送任意门.zip

    3. **本地网盘**:本地网盘是指在个人计算机上创建的一个存储空间,用户可以在其中存储和访问文件,而不依赖互联网。"Any Link"可以视为一种临时的本地网盘,因为它在用户的电脑上运行,提供文件共享功能,但与传统...

    Adminer≤4.6.2任意文件读取漏洞1

    5. **查看结果**: 查询`test`表以查看读取到的文件内容,清理数据表并删除创建的数据库。 **0x04 利用程序** 攻击者可以编写Python脚本来监听和接收MySQL连接,模拟服务器响应,然后执行恶意的`LOAD DATA INFILE`...

    MrWQ#vulnerability-paper#若依 CMS 0day 任意文件读取 or 未授权访问1

    文章来源:Khan 安全攻防实验室若依管理系统后台任意文件读取若依管理系统未授权访问。

    VC++文件操作通用类

    这允许开发者跳转到文件的任意位置进行读写,方便数据的随机访问。 **5. 文件大小获取** 通过`GetSize`方法,用户可以获取文件的大小,这对于了解文件内容或者管理磁盘空间非常实用。 **6. 错误处理** 良好的...

    eyoucms V1.0.4 后台任意文件读取漏洞1

    攻击者可以通过该漏洞读取服务器上的任意文件,从而获取敏感信息或进一步执行其他恶意操作。 #### 漏洞触发原理 漏洞主要源于代码中的逻辑缺陷,具体来说,在`application\admin\controller\Filemanager.php`文件...

    bagecms V3.1.3 后台任意文件读取漏洞1

    - 如果能正常返回文件内容,则证明存在任意文件读取漏洞。 - 攻击者可能借此机会获取数据库连接信息、加密密钥等敏感数据。 #### 防护建议 - **加强输入验证**: - 对所有用户输入进行严格的验证和过滤,尤其是...

    101web漏洞挖掘之任意文件读取漏洞1

    【任意文件读取漏洞详解】 任意文件读取漏洞是一种常见的Web安全问题,主要发生在PHP、Java和Python等编程语言中。这种漏洞允许攻击者通过构造特定的请求,读取服务器上的任意文件,包括敏感的配置文件、源代码、...

    批量修改文件创建时间,修改时间,访问时间,再也不怕老师发现我拿别人的项目了

    在IT行业中,有时候我们需要对文件的时间属性进行操作,比如改变文件的创建时间、修改时间和访问时间。这种情况在处理学习或工作项目时尤为常见,比如为了满足特定的需求或隐藏某些活动的痕迹。标题提到的“批量修改...

    java 读取文件 文件读取操作

    它可以让你自由地定位到文件的任意位置进行读写操作: ```java RandomAccessFile randomFile = new RandomAccessFile(fileName, "r"); long position = 500; // 跳转到文件的第500个字节 randomFile.seek...

    任意文件保存到数据库

    在IT行业中,将任意文件保存到数据库是一种常见的数据存储方式,尤其在处理大量二进制数据如图片、文档等时。本项目通过C#编程语言实现了这一功能,它适用于学习如何在文件系统与数据库之间进行交互操作。源代码的...

    Android 文件读写操作

    对于需要随机访问文件内容的情况,可以使用`RandomAccessFile`。它可以让你在文件的任意位置进行读写操作。例如: ```java RandomAccessFile randomAccessFile = new RandomAccessFile(filePath, "rw"); ...

Global site tag (gtag.js) - Google Analytics