Java文件 ---RandomAccessFile示例
RandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了。这些记录的大小不必相同;但是其大小和位置必须是可知的。但是该类仅限于操作文件
MulitWriteFile类:程序入口——写入数据、读取数据
public class MulitWriteFile {
    static File file = new File("RandomAccessFile.txt");
    public static void main(String[] args) {
        /* 与线程结合向文件中写入数据 */
        if (file.exists()) {
            file.delete();
        }
        new WriteFile(file, 5).start();
        new WriteFile(file, 3).start();
        new WriteFile(file, 1).start();
        new WriteFile(file, 4).start();
        new WriteFile(file, 2).start();
        /* 读取文件指定位置的数据 */
        RandomAccessFile raf = null;
        try {
            raf = new RandomAccessFile(file, "r");
            raf.seek(300);
            byte[] str = new byte[20];
            raf.read(str);
            String in = new String(str);
            System.out.println(in);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                if (raf != null) {
                    raf.close();
                }
            } catch (Exception e) {
            }
        }
    }
}
WriteFile类(线程):RandomAccessFile用法——向文件指定位置写入数据
public class WriteFile extends Thread {
    /** 要写入的文件 */
    File file;
    /** 要插入的区块(位置) */
    int block;
    /** 一个区块的长度 */
    int L = 100;
    /**
     * File
     *            |***        |+++
     * |-----------***---------+++--------------------------|
     *         |---
     */
    /**
     * 1            2            3            4            5(2)
     * |------------|------------|------------|------------|------------|
     * 0xL            1xL
     *
     * @param f
     * @param b
     */
    public WriteFile(File f,int b){
        file = f;
        block = b;
    }
    @Override
    public void run() {
        RandomAccessFile raf = null;
        try {
            // 得到需要读写的文件
            raf = new RandomAccessFile(file, "rw");
            // 将指针移动到指定位置
            raf.seek((block-1)*L);
            // 从指定位置开始写入数据
            raf.writeBytes("This is block"+block);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (raf != null) {
                try {
                    raf.close();
                } catch (Exception e) {
                }
            }
        }
    }
}
Java文件 ---RandomAccessFile示例的更多相关文章
- Java使用RandomAccessFile读写文件
		
目录 转载自:http://blog.csdn.net/akon_vm/article/details/7429245 Java RandomAccessFile RandomAccessFile是用 ...
 - Java 文件操作-RandomAccessFile
		
1. RandomAccessFile Java提供了一个可以对文件随机访问的操作,访问包括读和写操作.该类名为RandomAccessFile.该类的读写是基于指针的操作. 1)文件访问模式 ...
 - JAVA文件操作类和文件夹的操作代码示例
		
JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...
 - 使用java的MultipartFile实现layui官网文件上传实现全部示例,java文件上传
		
layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用. layui文件上传示例地址:https://www. ...
 - Java文件操作源码大全
		
Java文件操作源码大全 1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 9 ...
 - Java IO RandomAccessFile 任意位置读/写
		
随机读写类 RandomAccessFile的唯一父类是Object,与其他流父类不同.是用来访问那些保存数据记录的文件的,这样你就可以用seek( )方法来访问记录,并进行读写了.这些记录的大小不必 ...
 - 把java文件打包成.jar (jar命令详解)
		
把java文件打包成.jar (jar命令详解) 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1. ...
 - 多线程Java Socket编程示例(转)
		
这篇做为学习孙卫琴<<Java网络编程精解>>的学习笔记吧.其中采用Java 5的ExecutorService来进行线程池的方式实现多线程,模拟客户端多用户向同一服务器端发送 ...
 - java 文件类操作(转载)
		
11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...
 
随机推荐
- angularjs ng-if 慎用 备忘
			
ng-if.ng-show一般情况下可以通用,二者的最明显区别就是: ng-if判断为false时,页面dom节点不会被创建,其子节点下也不会渲染,从而也就加快了dom的加载速度:ng-show则仅是 ...
 - Struts2_用ModelDriven接收参数
			
通过实现 ModelDriven 接口来接收请求参数,这种方法用的比较少,一般还是用前两种. 请求: <a href="user/user!add?name=xiaoer&ag ...
 - 老笔记本装xubuntu+win7
			
https://www.freezhongzi.info/?p=167 1 install xubuntu 分区如下 sda1 20g ext4 / sda2 80g ext4 /data sda3 ...
 - System Center Configuration Manager 2016 必要条件准备篇(Part4)
			
步骤4.重新启动Configuration Manager主服务器 注意:在Configuration Manager服务器(CM01)上以本地管理员身份执行以下操作 打开管理命令提示符并发出以下 ...
 - RC4 in TLS is Broken: Now What?
			
https://community.qualys.com/blogs/securitylabs/2013/03/19/rc4-in-tls-is-broken-now-what RC4 has lon ...
 - 腾讯云、CloudXNS域名服务器
			
腾讯云 f1g1ns1.dnspod.net f1g1ns2.dnspod.net CloudXNS lv3ns1.ffdns.net lv3ns2.ffdns.net lv3ns3.ffdns.ne ...
 - 初学React:组件的样式
			
React中组件的样式有三种: <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
 - POJ-3020 Antenna Placement---二分图匹配&最小路径覆盖&建图
			
题目链接: https://vjudge.net/problem/POJ-3020 题目大意: 一个n*m的方阵 一个雷达可覆盖两个*,一个*可与四周的一个*被覆盖,一个*可被多个雷达覆盖问至少需要多 ...
 - ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed  /usr/bin/ssh-copy-id
			
远程删除key ssh-keygen -f "~/.ssh/known_hosts" -R 192.168.0.34 如果还是不可以,通过 ssh-keygen 重新生成key
 - 【BZOJ1269】[AHOI2006] 文本编辑器editor(Splay)
			
点此看题面 大致题意: 让你维护一个字符串,有插入字符串.删除区间.反转区间和输出单个字符操作. \(Splay\) 这应该是一道比较简单的\(Splay\)题(虽然因为各种细节我调了很久). 我们可 ...