java randomaccessfile pipe closed_Java中的文件操作(一)RandomAccessFile

今天,学到的是java中的文件操作。

Java.IO.File

Java中操作文件用到RandomAccessFile类,既可以读取文件内容,也可以向文件输出数据,但不同与普通输入/输出流的是RandomAccessFile支持“随机访问”的方式,即程序可以跳转到文件的任意地方来读写数据。

局限:只能读写文件,不能读写其他IO节点

了解

(1)Java文件模型

在硬盘上是byte byte byte 储存的,是 数据的集合

(2)打开文件

两种常用模式“rw”读写方式 “r”读

(3)写方法

Raf.write(int a)

(4)读方法

(5)用完之后要关闭

演示例子:

package com.my_demo;

import java.io.File;

import java.io.IOException;

import java.io.RandomAccessFile;

import java.util.Arrays;

public class RafDemo {

public static void main(String[] args) throws IOException{

File demo = new File("demo"); // 创建一个文件

if(!demo.exists())//如果文件不存在,创建到绝对目录下

{

demo.mkdirs();//这是个父目录

}

File file = new File(demo, "dat.txt");

if(!file.exists()){

file.createNewFile();//在demo目录下创建了文件

}

// RandomAccessFile raf = new RandomAccessFile(file, "rw");

RandomAccessFile raf = new RandomAccessFile("dat.txt", "rw");//读写方式

//看一下初始时的指针位置

System.out.println(raf.getFilePointer());

//往里写一个字节后看看指针的位置

raf.write('c'); //写了一个字节,它的后八位

//看一下此时的指针位置

System.out.println(raf.getFilePointer());

/**

* 用writechar()方法时会写入两个字节

*/

// raf.writeChar('c');

//写入一个int

int i = 0x7fffffff;//最大的整型

raf.write(i>>>24);//写进去高八位

raf.write(i>>>16);

raf.write(i>>>8);

raf.write(i); //Java底层的运行机制

//看一下此时的指针位置

System.out.println(raf.getFilePointer());

String s ="中";

byte[] gbk = s.getBytes("gbk");

raf.write(gbk);

System.out.println(raf.length());

//读文件,必须把指针移到头部

raf.seek(0);

//一次性读取,把文件中的内容都读写到字节数组中

byte[] buf = new byte[(int)raf.length()];

raf.read(buf);

System.out.println(Arrays.toString(buf));

//最后必须关闭

raf.close();

}

}

不足之处望指正,新手请多关照

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值