java I/O入门学习
java I/O
1)编码
gbk编码,中文占2个字节,英文占一个字节;
utf-8下,中文占3个字节[byte]
java是双字节编码 utf-16be,
当你的字节序列以某种编码时,这个时候想把字节序列转化为字符串,也必须用这种方式,否则出现乱码。
2) File类的使用
java.io.File类用于表示文件(目录)
a. File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件的访问。
exists() 判断文件或目录是否存在
mkdir() 创建文件或目录
delete() 删除
isDirectory() 判断是否是个目录
isFile() 判断是否是文件
...
b.常用操作
dir.list() 返回的是目录下的子文件名称数组,但不能包含子目录下的内容
File[] files = dir.listFiles() 返回的是直接子目录或者文件的抽象 文件数组
3) RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件
支持随机访问文件,可以访问文件的任意位置。
a. java文件模型
在硬盘上的文件是byte byte存储的,是数据的集合
b. 打开文件
有两种模式 “rw”(读写) “r”(只读)
RandomAccessFile raf = new RandomAccessFile(fiel,"rw");
文件指针,打开文件时指针在开头,pointer =0
raf.seek(0); 读文件,将指针移动到头部
c.写方法
raf.write(int) 只写一个字节(后八位),同时指针指向下一个位置
准备再次写入
d. 读方法
int b = raf.read() 读一个字节
e. 文件读写完成后一定记得关闭
raf.close(); 关闭文件
4) 字节流
IO流(输入流、输出流)
a. 字节流
InputStream 抽象了应用程序读取数据的方式
OutputStream 抽象了应用程序写出数据的方式
b. EOF = End 读到-1就读到结尾
c. 输入流
int b = in.read() 读取一个字节,无符号填充到int低八位,
-1是EOF
in.read(byte[] buf) 读取数据填充到字节数组buf
in.read(byte[] buf,int start,int size)
d. 输出流基本方法
out.write(int b)
...
e. FileInputStream
上一篇: java进程用法汇总