0
点赞
收藏
分享

微信扫一扫

Java-I/O流【RandomAccesseFile学习】

飞进科技 2022-04-14 阅读 68
java

RandomAccesseFile

RandomAccesseFile 的构造方法

RandomAccesseFile(File file,String mode)使用参数file指定被访问的文件,并使用mode来指定访问模式
RandomAccesseFile(String name,String mode)使用参数name指定被访问文件的路径,并使用mode来指定访问方式

RandomAccessFile 的常用方法

long getFilePointer()返回当前读写指针所处的位置
void seek(long pos)设置读写指针的位置,与文件开头相隔pos个字节数
int skipBytes(int n)使读写指针从当前位置开始,跳过n个字节
void write(byte[ ]  b)将指定的字节数组写入到这个文件,并从当前文件指针开始
void setLength(long newLength)设置此文件的长度
final String readLine()从指定文件当前指针读取下一行内容

新建一个test.txt文件里面输入数字3作为软件试看次数(文件就放在项目下)

试看次数模拟代码:


import java.io.*;

public class RandomAccessFileTest {
	public static void main(String[] args) {
		
		RandomAccessFile raf = null;
		
		try {
			//创建RandomAccessFile对象,并以读写模式打开文件test.txt文件,rw:读写
			//直接放在项目下路径为test.txt 如果放在src目录下路径为"src/test.txt"
			raf = new RandomAccessFile("test.txt","rw");
			
			//读取还可以免费观看的次数,第一次读取时view为3
			int view = Integer.parseInt(raf.readLine());
			
			//判断剩余次数
			if(view > 0) {
				//(每观看一次,次数就减少一次)
				view = view -1;
				System.out.println("您还可以免费观看 " + view + "次");
				
				//将记录指针重新指向文件开头
				raf.seek(0);
				//将剩余次数再次写入文件
				raf.write((view + "").getBytes());
			}else {
				System.out.println("您的观看次数已经用完了!");
			}
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if(raf != null) {
				try {
					raf.close();//关闭
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			
		}

		
	}
	
}

 试看次数效果:

        控制台:

         test.txt文件

 

在项目下新建一个random.txt文件,不用添加内容。

读取指定位置的内容代码:(与文件相隔3个字符处,读取6个字节)

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

public class RandomAccessFileTest02 {
	public static void main(String[] args) throws IOException {
		//创建RandomAccessFile对象,并以读写模式打开文件random.txt文件,rw:读写
		RandomAccessFile raf = new RandomAccessFile("random.txt", "rw");
		//random.txt中写入内容
		raf.write("RandomAccessFile".getBytes());
		
		raf.seek(3);//设置读写指针的位置,与文件开头相隔3个字节数
		
		//读取 
		byte[] buf = new byte[6];
		int len = raf.read(buf);//读取6个字节
		System.out.println(new String(buf,0,len));
		raf.close(); // 关闭
	}
}

写入后内容后的random.txt:

读取的内容:

 

举报

相关推荐

Java-I/O学习(5)

Java-I/O学习(2)

Java-I/O学习(3)

Java-I/O学习(4)

Java-I/O学习(1)

Java-I/O学习(7)

Java-I/O学习(6)

I/O流(Java)

0 条评论