课程名称:JAVA输入输出流
课程章节:第2章 File类的使用
课程讲师: Cedar
课程内容:
一、文件的编码
byte[] bytes1 = s.getBytes(); //转换成字节序列,使用项目默认的编码gbk
byte[] bytes2 = s.getBytes("gbk"); //中文2个字节,英文1个字节
byte[] bytes3 = s.getBytes("utf-8"); //中文3个字节,英文1个字节
//java是双字节编码,utf-16be
byte[] bytes3 = s.getBytes("utf-16be"); //中文2个字节,英文2个字节
for(byte b:bytes1){
System.out.print(Integer.toHexString(b & 0xff) + " "); //把字节转换成int,以16进制的方式显示
}
//当字节序列是某种编码时,如需要把字节序列转成字符串,也需要用这种编码方式,否则会乱码
String str1 = new String(bytes1); //用项目默认的编码
String str2 = new String(bytes4,"utf-16be");
//中文机器直接创建文本文件,该文件只认识ANSI编码;
二、File类的使用
java.io.File类主要用于表示文件(目录)
File类只能用于文件的信息展示,如大小、名称,不能用于文件内容的访问
1、File类的常用API
File file = new File("");
File file = new File("","");
File.separator; //文件分隔符
file.exists(); //判断文件是否存在
file.isDirectory(); //是否目录,是目录返回true
file.isFile(); //是否文件,是文件返回true
file.mkdir()、file.mkdirs(); //创建目录、多级目录
file.createNewFile(); //创建文件
file.delete(); //删除文件
file.getAbsolutePath(); //文件路径
2、遍历目录
String[] filenames = dir.list(); //返回的是字符串数组,直接子的名称,不包含子目录下的内容
File[] files = dir.listFiles(); //返回的是直接子目录(文件)的抽象
//列出目录(包括其子目录)的所有文件
三、RandomAccessFile基本操作
RandomAccessFile是JAVA提供的对文件内容的访问,既可以读文件,也可以写文件
支持随机访问文件,可以访问文件的任意位置
(1)JAVA文件模型
在硬盘上的文件是byte byte byte存储的,是数据的集合
(2)打开文件
有两种模式"rw"(读写)"r"(只读)
RandomAccessFile raf = new RandomAccessFile(file, "rw");
文件指针,打开文件时指针在开头pointer = 0;
(3)写方法
raf.wriet(int); //只写一个字节(后8位),指针指向下一个位置
(4)读方法
int b = raf.read(int); //读一个字节
(5)文件读写完成后一定要关闭
课程收获:
File类常用API较易上手,RandomAccessFile类与文件编码关联较大,还需要将文件编码再继续加深理解才行。