IO基础加强 day 07 资源文件propertise的加载

--------资源文件propertise的加载

        Properties p = new Properties();

        p.load(new FileInputStream("db.properties"));
        System.out.println(p);

        System.out.println(p.get("username"));

        就三行代码,就是这么简单


--------数据流dataInputStream、dataOutputStream

//dataInputStream方法   readXxx(); xxx表示各种数据类型
//dataOutputStream方法   WriteXxx(); xxx表示各种数据类型
//注意:读和写的方法必须类型一致
DataOutputStream dos = new DataOutputStream(new FileOutputStream("1.txt"));
dos.writeUTF("据地方");
dos.writeInt(11);
dos.writeBoolean(true);
dos.close();
//此时的1.txt内容为    乱码字节
DataInputStream dis = new DataInputStream(new FileInputStream("1.txt"));
System.out.println(dis.readUTF());
System.out.println(dis.readInt());
System.out.println(dis.readBoolean());

dis.close();


--------随机访问数据流

    public static void main(String[] args) throws Exception{
//RandomAccessFile读取和写入随机访问文件 第二个参数为权限,r(读)或rw(读写)
RandomAccessFile raf = new RandomAccessFile("1.txt", "rw");
raf.writeLong(123);
raf.writeBoolean(true);
raf.close();
RandomAccessFile raf2 = new RandomAccessFile("1.txt", "r");
long readLong = raf2.readLong();
boolean readBoolean = raf2.readBoolean();
System.out.println(readLong);//123
//获取文件的指针位置
System.out.println(raf2.getFilePointer());//9
//指针指向0
raf2.seek(0);
//指针跳过8个字节
raf2.skipBytes(8);
//重新读取    注意此时还是8个字节开始读
System.out.println(raf2.readBoolean());//true
//设置指针位置重新读取
raf2.seek(8);
boolean readBoolean2 = raf2.readBoolean();//true
System.out.println(readBoolean2);
raf2.close();

}

该类经常用来做多线程断点下载

IO基础加强 day 07 资源文件propertise的加载