文件传递

文件操作

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

四种流

输入流

  1. 字节输入流:InputStream 8位字节读取 8位表示ascll码 键盘中的字母
  • 定义输入流
    InputStream is = new FileInputStream(path,true)
    加true 追加到文件后,默认false覆盖

    1. is.read() 读取这一行,同时指正下移
    1. is.read(byte) 根据数组长度读取
  1. 字节输出流
  • 定义字节输出流
    new FileOutPutStream(path,true)
    加true 追加到文件后,默认false覆盖
    )创建文件
    数据流 基本数据类型
    DataInputStream dir new DataInputStream()
    dir.readUTF();
    对象流 实现序列化接口
    new ObjectInputStream()
    new ObjectOutputStream()
    ois.writeObject(s1);
    EOF异常,读完没有了,多读了一遍
  1. 字符输入流
    new FileReader(file)
    new InputStreamReader(new FileInputStream(new File("")))通过转换流指定编码
    字符流有缓存,关闭才会写入文件
    osw.flush() 刷了还能用
    osw.close() 关了不能用
  2. 字符输出流

可以指定字符集
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
posted @ 2022-07-20 20:54  chahune  阅读(77)  评论(0)    收藏  举报