黑马程序员技术交流社区

标题: 【石家庄校区】关于IO流的个人笔记 [打印本页]

作者: 狸子换太猫    时间: 2018-1-4 17:05
标题: 【石家庄校区】关于IO流的个人笔记
关于IO流的个人笔记


#IO流
##File类
###File类的概述
* 文件和目录的路径名的抽象表示形式,File类的实例是不可变的
* 构造方法
1. File(String pathname)
* 将指定的路径名转换成一个File对象(只是指向路径,没有做其他操作)
2.File(String parent, String child)
* 根据指定的父类路径和文件路径创建File对象
3.File(File parent, String child)
* 根据指定父类路径对象和文件路径创建File对象
*###File的常用功能
* 绝对路径和相对路径
* 绝对:固定不可改变的路径,以盘符开头
* 相对:相对于某个参照物,不能以盘符开头
* 创建功能:
* boolean createNewFile()
* 当指定文件不存在时,创建文件返回true,否则false
* boolean mkdir()
* 创建目录
* booleanmkdirs()
* 创建多级目录
* 创建指定文件夹,当文件夹所在的目录不存在,则顺道创建
* 删除功能
* boolean delete()
* 当之指定文件或者文件夹存在时,删除,成功则返回true,否则返回false
* 获取功能
* File getAbsoluFile()
* 以对象的形式返回File对象所指向的绝对路径
* String getAbsolutePath()
* 获取包含File对象所指向的绝对路径
* String getPath()
* 获取创建File对象时所使用的路径
* String[] list()
* 获取当前目录下所有文件或目录的路径的数组
* File[] listFiles()
* 获取当前目录下所有文件或目录的File对象的数组
* static File[] listRoots()
* 获取系统所有根录(即磁盘)的File对象的数组
* 修改名字功能
* boolean renameTo(File dest)
* 注意:不能重名
* 判断功能
* boolean exists()
* 判断文件或者文件夹是否存在,存在返回true,否则false
* boolean isAnsolute()
* 判断File对象指向的路径是否是绝对路径
* boolean isDirectory()
* 判断File对象指向的路径是否是文件夹
* boolean isFile()
* 判断File对象指向的路径是否是文件
* boolean isHidden()
* 判断File对象指向的路径是否有隐藏属性
##IO字符流和字节流
###IO流的分类
* 按流向分类
1. 输入流
2. 输出流
* 按数据类型分类
1. 字节流(处理任何文件,包括文本文件)
a. 字节输入流
* 读取数据  InputStream
b. 字节输出流
* 写出数据OutputStream
2. 字符流(处理文本文件)
a. 字符输入流
* Reader类
b.字符输出流
* Writer类
###InputStream和OutputStream
* 二进制文件只能使用字节流进行复制。
* 文本文件的复制既可以使用字符流又可以使用字节流

##IO
###标准的输入、输出流
* 标准输入流(in): public staticfinal InputStream in:字节输入流
* 使用:InputStreamin  = System.in;
* 作用:用来读取键盘录入的数据
* 标准输出流(out):public staticfinal PrintStream out:字节输出流
* 使用:PrintStreamout = System.out;
* 作用:将数据输出至控制台
###转换流
* byte[] String.getBytes()方法:字符串转字节数组
* String(byte[] bytes):String类的一个构造方法,byte数转字符串
* OutputStreamWriter类:
* OutputSreamWriter类用于 把标准输出流转换成字符输出流;
* InputStreamReader类
* InputStreamReader类用于 把标准输入流转换成字符输入流;
###打印流
* 打印流
* PrintStream:字节输出流
* PrintWriter:字符输出流
* 可以自动换行,println()
* 可以打印除字节外的任意类型
* 通过某些配置,可以实现自动刷新(只有在println、printf或format才有用)
* 包装流
* 特点:
* 打印流只有输出功能,没有输入功能
* 打印流的特有功能
* 自动换行
* 调用打印流的println方法
* 自定刷新
* 启动自动刷新:PrintWriter(Writerout, boolean autoFlush)
###对象流
* 对象操作流:可以用于读写任意类型的对象
* 对象输出流:ObjectOutSputtream
* writeObject
* 构造方法:ObjectOutputStream(OutputStreamout)
* 对象输入流:ObjectInputStream
* readObject
* 构造方法:ObjectInputStream(InputStreamin)
* 解决对象输入流读取对象出现异常的问题
* 使用集合解决
##集合
###Properties集合
* 概述
* Properties类表示一个持久的属性集,属性列表中每个键及其对应值都是一个字符串。
* Properties和IO流结合的功能
* 输出流:
* void list(PrintWrite out)
* 只能使用打印流
* void store(Writer writer, StringdefaultValue)
* 可以使用Writer的任意流
* 输入流:
* void load(Reader reader)
##乱码
* 编码表:
  
ASCII
  
  
美标
  
  
ISO-8859-1
  
  
欧洲码表
  
  
GB2312
  
  
国标码
  
  
GBK
  
  
国标码扩展码
  
  
Unicode
  
  
万国码,所有的字符都占2个字节
  
  
UTF-8
  
  
万国码,长度可变的码表
  
  
ANSI
  
  
本地编码表,根据系统设置决定编码表
  

* 乱码解决方案
* 编码保持前后一致








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2