如何读取文件某一位置?
代码如下(示例):
package com.vetor.lesson;
import java.io.File;
import java.io.FileWriter;
import java.io.RandomAccessFile;
import java.util.Scanner;
public class MyRandom {
public static void main(String[] args) {
//新建RandomFile.txt文件
File f = new File("RandomFile.txt");
try
{
f.createNewFile();
}catch (Exception e)
{
System.out.println(e);
}
//往文件中输入信息
String str = "abcdefghjklmnopqrstuvwxyz";
try
{
FileWriter fw = new FileWriter(f); //写入
fw.write(str);
fw.close();
}catch(Exception e)
{
System.out.println(e);
}
//从键盘输入0~25的整数
int a = -1;
Scanner reader = new Scanner(System.in);
while(a<0||a>25)
{
System.out.println("从键盘输入一个0~25的整数");
a = reader.nextInt();
}
//随机访问文件中的字符
try
{
RandomAccessFile inFile = new RandomAccessFile("RandomFile.txt", "r");
/**
* 可以在文件的任何位置查找或者写入数据,
* 打开一个随机存取文件,要么进行只读操作,可以通过第二个参数来指定,
* r表示读取,rw表示读写
* seek()方法指定位置,范围0~long型整数
* read()方法 :对文件读取
* write()方法 : 对文件写入
*/
inFile.seek(a); //将文件指针移动到整数a的位置
char c = (char)inFile.read(); //在inFile中读入一个字符赋值给变量c
inFile.close();
System.out.println("RandomFile.txt文件中第"+a+"个字符是"+c);
}
catch(Exception e)
{
System.out.println(e);
}
}
}
测试结果:
总结
inFile.seek(a); //将文件指针移动到整数a的位置,无返回值
char c = (char)inFile.read(); //在inFile中读入一个字符赋值给变量c