文件传递
文件操作
File file = new File(path);
file.createNerFile():创建文件
file.exists():是否存在
file.length():长度
file.delete():删除
file.getAbsolutePath():绝对路径
file.getPath():相对路径
file.getName() 获取文件名
file.separator 文件分隔符
文件夹
file.mkdir():创建文件夹
file.mkdirs():创建文件夹
file.isFile():是不是文件
file.isDirectory():是不是文件夹
file.list() 获取文件夹下所有文件名字
file.listFiles() 获取文件夹下所有文件
IO
四种流
输入流
- 字节输入流:InputStream 8位字节读取 8位表示ascll码 键盘中的字母
-
定义输入流
InputStream is = new FileInputStream(path,true)
加true 追加到文件后,默认false覆盖 -
- is.read() 读取这一行,同时指正下移
-
- is.read(byte) 根据数组长度读取
- 字节输出流
- 定义字节输出流
new FileOutPutStream(path,true)
加true 追加到文件后,默认false覆盖
)创建文件
数据流 基本数据类型
DataInputStream dir new DataInputStream()
dir.readUTF();
对象流 实现序列化接口
new ObjectInputStream()
new ObjectOutputStream()
ois.writeObject(s1);
EOF异常,读完没有了,多读了一遍
- 字符输入流
new FileReader(file)
new InputStreamReader(new FileInputStream(new File("")))通过转换流指定编码
字符流有缓存,关闭才会写入文件
osw.flush() 刷了还能用
osw.close() 关了不能用 - 字符输出流
可以指定字符集
new BufferedReader(new InputStreamReader(new FileInputStream(new File(""))))
new BufferedWriter(new InputStreamReader(new FileInputStream(new File(""))))
bw.readLine() 一行一行读取字符
bw.newLine() 换行 bw.writer("\n")
transient 瞬时数据-不能序列化
字符集和字符编码
ASCLL -0~127
ISO8859-1 1--128-255 256个
中文
GB2312 2312
GBK 扩展
GB18030 少数民族扩展
BIG5 繁体
微软ANSI用国家本地版,不是编码
欧洲标准化组织
UNICODE 万国码
UTF-16:国定长度16位
UTF-32:国定长度32位
UTF-8:可变长的编码
- 0开头用1字节 7
- 110开头用2字节 11 10******
- 1110 3字节 16
- 11110 4字节 21