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");
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_43442290/article/details/88257800
今日推荐