RandomAccessFile读取文件

1,
package day06;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
/*
 * 复制文件
 */
public class CopyDemo1 {
 public static void main(String[] args) throws IOException {
  /*
   * 创建一个RAF读取原文件,
   *
   */
  RandomAccessFile raf=new RandomAccessFile("bee.png","r");
  RandomAccessFile rad=new RandomAccessFile("raf.png","rw");
  int  b=-1;
  while((b=raf.read())!=-1){
   rad.write(b);
  }
  //int d=-1;
  System.out.println("复制完毕");
  
 }

}


2,
package day06;
/*
 * 通过提高每次读写的数据量来减少读写次数提高读写效率
 */
import java.io.IOException;
import java.io.RandomAccessFile;
public class CopyDemo2 {
 public static void main(String[] args) throws IOException {
  
/*
 * 尝试读取给定的字节数组总长度的字节量
 *
 * */  
  RandomAccessFile src=new RandomAccessFile("bee.png","r");
  RandomAccessFile src1=new RandomAccessFile("bee1.png","rw");
  
  byte []buf=new byte[1024*10];
  int len=-1;
  while((len=src.read(buf))!=-1){
   src1.write(buf);
  }
  System.out.println("写完毕");
  
 }
}

3,
package day06;
import java.io.IOException;
import java.io.RandomAccessFile;
/*
 * java.io.RandomAccessFile
 * 基于指针进行读写,在指针处写,自动后移
 * 可以读写
 *
 * 能自动创建文件但是不能自动创建目录
 *
 * RandomAccessFile(
 * String  path,String mode)
 *
 * RandomAccessFile(
 * File file,String mode)
 *
 * 第二个参数为访问模式:
 * r:读模式
 * W;写模式
 *
 */
public class RandomAccessFileDemo1 {
 public static void main(String[] args) throws IOException {
  RandomAccessFile rat=new RandomAccessFile("raf.dat","rw");
  /*
   * 写出给定int值对应的2进制的低8位
   */
  rat.write(256);
  System.out.println("写入完毕");
  int d=rat.read();//指针移动!
  System.out.println(d);
  rat.close();
 }
}

4,
package day06;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomAccessFileDemo2 {
 public static void main(String[] args) throws IOException {
  RandomAccessFile raf=new RandomAccessFile("raf.dat","r");
/*
 * 读取一个字节,并以10进制的int型返回
 * 返回值为-1,表示读到了文件末尾
 */
  int m=raf.read();
  System.out.println(m);
  
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值