博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO:RandomAccessFile类
阅读量:5076 次
发布时间:2019-06-12

本文共 1692 字,大约阅读时间需要 5 分钟。

之前的File类只是针对文件本身进行操作的,而如果相对文件内容进行操作,则可以使用RandomAccessFile类,此类属于随即读取类,可以随机的读取一个文件中指定位置的数据。

因为在文件中,所有得内容都是按照字节存放的,都有固定的保存位置。

 

构造函数:

public RandomAccessFile(File file,String mode)throws FileNotFoundException

实例化此类的时候需要传递File类。告诉程序应该操作的是哪个文件,之后有个模式,文件的打开模式,常用的两种模式:

  • r:读
  • w:写
  • rw:读写,如果使用此模式,如果文件不存在,则会自动创建

先写信息:

1 import java.io.File;  2 import java.io.IOException;  3 import java.io.RandomAccessFile;  4  5 public class Test9 {
6 public static void main(String[] args) throws IOException {
7 File f = new File("d:" + File.separator+"test.txt"); 8 RandomAccessFile raf=new RandomAccessFile(f,"rw");//读写模式,如果该路径不存在会自动创建 9 String name1="jim"; 10 int age1 =20; 11 String name2="Tom"; 12 int age2=30; 13 raf.writeBytes(name1); 14 raf.writeInt(age1); 15 raf.writeBytes(name2); 16 raf.writeInt(age2); 17 raf.close(); 18 } 19 }

然后读文件:

1 import java.io.File;  2 import java.io.IOException;  3 import java.io.RandomAccessFile;  4  5 public class Test10 {
6 public static void main(String[] args) throws IOException {
7 File f = new File("d:" + File.separator+"test.txt"); 8 RandomAccessFile raf=new RandomAccessFile(f,"r");//以读模式打开 9 raf.skipBytes(7);//跳过第一个人的信息 10 byte[] bs=new byte[3]; 11 for(int i=0;i

另外:可能有的同学输入的是中文,那么使用getBytes()转换,会占3个字节(取决你的本地编码,如果用Eclipse可设置成UTF-8),咦?java里面中文不是占两个字节吗?怎么会变成3个字节呢?其实这不是一个概念,java默认字符编码的是unicode,确实占两个字节,但是在String换转byte[]时用的getBytes()默认用的编码进行转换,那么就会占3个字节,unicode和UTF-8不是一个概念,仔细观察的话会发现getBytes()方法有另外的重载getBytes("……"),例如通过getBytes("gbk"),这是转化的中文就会变成两字节了。

转载于:https://www.cnblogs.com/olddriver123/p/8257884.html

你可能感兴趣的文章
【题解】[P4178 Tree]
查看>>
Jquery ui widget开发
查看>>
关于indexOf的使用
查看>>
英语单词
查看>>
Mongo自动备份
查看>>
cer证书签名验证
查看>>
新手Python第一天(接触)
查看>>
【bzoj1029】[JSOI2007]建筑抢修
查看>>
synchronized
查看>>
codevs 1080 线段树练习
查看>>
[No0000195]NoSQL还是SQL?这一篇讲清楚
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
QML学习笔记之一
查看>>
Window 的引导过程
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>