Java——RandomAccessFile

package day01;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * RandomAccessFile用于读写文件数据的类
 * @author Administrator
 *
 */
public class RandomAccessFileDemo {
	public static void main(String[] args) throws IOException {
		/*
		 * 对项目跟目录下一个名为demo.dat
		 * 的文件内容进行读写
		 */
		RandomAccessFile raf = new RandomAccessFile(
				"demo.dat","rw");
//		上面一行还可以写为:
//	    File file = new File("demo.dat");
//		RandomAccessFile raf2 = new RandomAccessFile(file,"rw");
		
		/*
		 * void write(int n)
		 * 写出给定int值的“低8位”
		 * 只写一个字节
		 * 00000000 00000000 00000000 00000001
		 * 
		 * 程序员的发展阶段:
		 * 1:不知道我不知道
		 * 2:知道了我不知道的
		 * 3:知道了我知道的
		 * 4:不知道我知道的
		 */
		int num = 256;
		raf.write(num);

		/*
		 * 使用IO后,一定要记得关闭
		 */
		raf.close();
	}
}

package day01;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * 读取文件
 * @author Administrator
 *
 */
public class RandomAccessFileDemo2 {
	public static void main(String[] args) throws IOException {
		RandomAccessFile raf = new RandomAccessFile(
				"demo.dat","r");
		/*
		 * 从当前文件中读取【一个字节】
		 * 将该字节存入返回的int值中
		 * int值“低8位”有效
		 * 
		 * 若返回值为-1,则说明读取到了
		 * 文件的末尾
		 * EOF end of file
		 */
		int i = raf.read();
		
		System.out.println(i);
		
		//再读取一个字节
		i= raf.read();
		System.out.println(i);
		raf.close();
	}
}
package day01;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * 使用RandomAccessFile完成复制操作
 * @author Administrator
 *
 */
public class RandomAccessFileDemo3 {
	public static void main(String[] args) throws IOException {
		/*
		 * 1:创建一个RAndomAccessFile用于读取
		 * 	 待复制的文件
		 * 2:创建一个RandomAccessFile用于将
		 *   原文件中数据写入该文件
		 * 3:循环从原文件中读取每一个字节并写入目标文件
		 * 4:关闭两个RandomAccessFile
		 */
		long start = System.currentTimeMillis();
		//1
		RandomAccessFile src = new RandomAccessFile(
				"src.jpg","r");
		
		//2
		RandomAccessFile des = new RandomAccessFile(
				"copy.jpg","rw");
		
		//3
		int d = -1;
		while( (d = src.read()) != -1) {
			des.write(d);
		}
		
		//4
		System.out.println("拷贝完毕");
		src.close();
		des.close();
		long end = System.currentTimeMillis();
		System.out.println("耗时:"+(end-start)+"ms");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Performer_Cherry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值