黑马程序员--java高级视频输入、输出流(1)

学习笔记:

1.File类

File类:是IO包中唯一代表磁盘文件本身信息的类,而不是文件中的内容。
File类定义了一些与平台无关的方法来操纵文件,比如: 创建文件、删除文件、复制文件等等。

构造方法
       public   File(String  path);
       public   File(String path,String name);
       public   File(File  parent,String chile);

路径问题:  java可以正确处理不同系统下的路径分隔符
在不同的操作系统上,分隔符是不一样的,在Unix下的路径分隔符为(/),
                                      在Dos下的路径分隔符为(/)


 下面是个例子:要完成的功能:判断某个文件是否存在,存在则删除,不存在则创建。


 public class FileTest{

       public static void mian(String [] args){

               //创建对象
              File file = new File("aa.txt");

              if(file.exists()){
               //删除
                  file.delete();
              }else{
               //创建
                   file.createNewFile();
              }

          System.out.println(file.getName);
          System.out.println(file.getPath);
      }
}

   


2.RandomAccessFile类

RandomAccessFile类:提供了众多的文件访问方法。支持“随机访问”方式,且仅限于操作文件

创建一个RandomAccessFile对象
        RandomAccessFile(File file,String mode) ;
        RandomAccessFile(String name,String mode);


读写数据的常用方法:
   读、写基本数据类型: readInt();writeInt(int n)等;
   读、写UTF字符串:  readUTF();writeUTF(String str);
   读 取文件中的一行: readLine();

下面的例子: 往文件里写三名员工的信息,第个员工含有姓名和年龄两个属性,
             然后按照第二名,第一名, 第二名 的先后顺序读出员工信息。

 

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class Employee {

 public String name=null;
 
 public int age=0;
 
 //public static final int LEN = 8;
 
 public Employee(String na, int ag){
  
  
  this.name=na;
  this.age=ag;
 }
 public static class RandomFileTest{
  public static void main(String[] args) throws IOException{
   Employee emp1 =new Employee("张三",22);
   Employee emp2 =new Employee("李四",23);
   Employee emp3 =new Employee("王五",20);
   
   RandomAccessFile raf = new RandomAccessFile("aa.txt","rw");
   
   raf.write(emp1.name.getBytes());
   
   raf.write(emp1.age);
   
            raf.write(emp2.name.getBytes());
   
   raf.write(emp2.age);
   
       raf.write(emp3.name.getBytes());
    
      raf.write(emp3.age);
   raf.close();
   
   int len=0;
   byte[] buf =new byte[8];
   RandomAccessFile rand = new RandomAccessFile("aa.txt","r");
   rand.skipBytes(12);
   len=rand.read(buf);
   String strName = new String(buf,0,len);
   System.out.println(strName+raf.read());
   
   rand.seek(0);
   len=rand.read(buf);
      strName = new String(buf,0,len);
   System.out.println(strName+raf.read());
   
     rand.skipBytes(12);
     len=rand.read(buf);
    strName = new String(buf,0,len);
   System.out.println(strName+raf.read());
  
   rand.close();
  }
 }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值