Java IO学习笔记(二):RandomAccessFile类
来源:互联网 发布:微盘交易平台源码出售 编辑:程序博客网 时间:2024/06/07 12:04
之前的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<bs.length;i++){12 bs[i]=raf.readByte();13 }14 String name2=new String(bs);15 int age2=raf.readInt();16 System.out.println(name2+" "+age2);17 18 raf.seek(0);//指针回到文件开头,读取第二个人的信息19 for(int i=0;i<bs.length;i++){20 bs[i]=raf.readByte();21 }22 String name1=new String(bs);23 int age1=raf.readInt();24 System.out.println(name1+" "+age1);25 }26 }
另外:可能有的同学输入的是中文,那么使用getBytes()转换,会占3个字节(取决你的本地编码,如果用Eclipse可设置成UTF-8),咦?java里面中文不是占两个字节吗?怎么会变成3个字节呢?其实这不是一个概念,java默认字符编码的是unicode,确实占两个字节,但是在String换转byte[]时用的getBytes()默认用的编码进行转换,那么就会占3个字节,unicode和UTF-8不是一个概念,仔细观察的话会发现getBytes()方法有另外的重载getBytes("……"),例如通过getBytes("gbk"),这是转化的中文就会变成两字节了。
阅读全文
0 0
- Java IO学习笔记(二):RandomAccessFile类
- java Io RandomAccessFile类 笔记
- java IO笔记(RandomAccessFile)
- Java IO笔记(3)RandomAccessFile
- Java IO--RandomAccessFile类
- Java IO-RandomAccessFile类
- Java学习笔记(1)--File类、RandomAccessFile类
- java io 笔记一:RandomAccessFile(随机访问) 类
- java IO流 RandomAccessFile类
- JAVA IO系列----RandomAccessFile类
- java IO之 RandomAccessFile类
- Java IO之RandomAccessFile类
- JAVA IO 之 RandomAccessFile类
- Java-IO(二)——RandomAccessFile
- Java IO(六):RandomAccessFile
- Java IO 学习笔记(二)
- Java IO学习笔记二
- 12. JAVA IO Party 1 (目标、File类、RandomAccessFile类、字节流和字符流、转换流) ----- 学习笔记
- 大话数据结构(七)——二叉树创建与遍历(递归、非递归)的java实现
- 第1课
- (193)矢量操作
- 欢迎使用CSDN-markdown编辑器
- Java IO学习笔记(三):字节流与字符流
- Java IO学习笔记(二):RandomAccessFile类
- MySQL创建数据库和数据库表
- Java IO学习笔记(一):File类
- NIO缓冲区的基本概念
- BZOJ 3209: 花神的数论题 数位DP
- 五月英语总结
- DQN调整超参数体会
- 白鹿原34观后感
- gulp入门——基本功能实现