Java随机访问流RandomAccessFile用法示例
写一个文件, 写入26个小写字母,再打开这个文件, 把前10个换成大写字母,后10个替换为数字字符.
这里主要是用RandomAccessFile随机访问流来处理这个问题:
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* 写一个文件, 写入26个小写字母,再打开这个文件, 把前10个换成大写字母,后10个替换为数字字符.
*/
public class Test5 {
public static void main(String[] args) throws IOException {
File file = new File("text5.txt");
RandomAccessFile raf = new RandomAccessFile(file, "rw");
for (int i = 0; i < 26; i++) {
raf.write('a' + i); // 循环写入26个小写字母
}
byte[] temp = new byte[10];
raf.seek(0);
raf.read(temp, 0, 10);// 从0位置读取10个字节的数据存入temp字节数组
raf.seek(0);
for (long i = 0; i < 10; i++) {
raf.write(temp[(int) i] - 32);// 从0位置循环写入大写字母
}
long pos = raf.length() - 10;
raf.seek(pos);
raf.read(temp, 0, 10);// 从pos位置读取10个字节数据到temp字节数组
raf.seek(pos);
for (long i = 0; i < 10; i++) {
// 循环写入字符转化的数字
raf.writeBytes(String.valueOf((int) temp[(int) i]));
}
raf.close();
}
}