IO流总结
2020-09-04 10:22:27 0 举报
AI智能生成
Java中的IO
作者其他创作
大纲/内容
IO流总结
File类
概述:java提供对系统中文件或者文件夹进行操作的类
相对路径和绝对路径
构造方法
FIle(String str) 传入一个文件或者文件夹的路径(默认是相对路径)(常用)
成员方法
isDirectory() 是否是文件夹
mkdirs() 创建多级目录
File[] listFiles() 获得文件夹下的所有文件和文件夹 File对象
getAbsolutePath() 获得绝对路径
getName() 获得文件或则文件夹名字
String[] list() 获得文件夹下的所有文件和文件夹名称
文件名过滤器:创建一个 FilenameFilter 接口匿名子类
mkdir()\t 创建单级目录
exists() 传入的路径是否存在
canRead() 是否能读(Windows系统所有文件都是可读的)
isFile() 是否是文件
canWrite() 是否可写(Windows系统可设置为不可写)
isHidden() 是否是隐藏文件
getPath() 获得构造方法传入的路径
lastModified()获得最后修改时间
常用
递归
概述:方法自己调用自己.(构造方法除外)
递归的好处:不用知道循环次数
递归调用是否必须有返回值? 可有可无
字节流
InputStream 字节输入流
FileInputStream\t文件字节输入流
FileInputStream(File f)通过File对象创建
常用方法
read(byte[] arr) 每次读取一个数组
read() 每次读取一个字节
读到文件的末尾返回 -1
BufferedInputStream 缓冲流
BufferedInputStream(InputStream is)
OutputStream 字节输出流
FileOutputStream 文件字节输出流
常用方法
BufferedOutputStream 缓冲流
BufferedOutputSteam(OutputStream os)
copy文件代码
flush()和close()的区别
不是缓冲流的类,flush方法不起任何作用,方法体为空
flush方法只有输出流才有的方法
字节流读写中文
1.6版本异常处理代码
字符流
Reader 字符输入流 (传输单元是字符)
FileReader 文件字符输入流
read() 读取一个字符
read(char[]) 读取一个字符数组
文件读到最后返回值都是 -1
BufferedReader 缓冲字符输入流
BufferedReader(Reader r)
文件读到最后返回值是 null
构造方法中常用来包裹 FileReader 对象
Writer 字符输出流 (传输单元字符)
FileWriter 文件字符输出流
write() 写一个字符
write(String s)
BufferedWriter 缓冲字符输出流
BufferedWriter(Writer w)
构造方法中常用来包裹FileWriter
什么时候使用字符流
只读或者只写纯文本文件的时候使用
字符流是否可以拷贝非纯文本的文件
装饰类
是你还有你,一切拜托你
拿到被装饰类的引用
对原有功能的升级
格式
class 装饰类 /*实现某个接口*/ {\tprivate 被装饰类名 引用变量;\tpublic 装饰类(被装饰类名 引用变量) {\t\tthis.引用变量=引用变量\t}\t//3.对原有功能升级 一般是方法复写}
转换流
Reader的子类
InputStreamReader 字节转成字符输入流
Writer的子类
OutputStreamWriter\t字符流转换成字节流
作用:
让字节流和字符流直接进行转换
设定流中字符编码
IO流中其他流
OutputStream(字节输出流)
内存输出流ByteArrayOutputStream
作用:使用字节流读取文本的时候,很容易将中国字符进行切割,导致乱码,可通过该流解决这种情况。
toString()
将内存中的所有内容一次性转为字符串
将数组中的内容写入到内存中
打印流
特殊:里面重载了各种print 和 println 的方法,其中参数为数组的只有 char[],其他数组都是以Object类型传入
Writer(字符输出流)
类PrintWriter
OutputStream(字节输出流)
类 PrintStream
标准输入输出流
System.in
默认输入源是: 键盘
使用 System.setIn(InputStream in) 可以更改输入源为某个文件
包装: 可以通过InputStreamReader转换流转换为字符流,再通过BufferedReader转换为缓冲流,每次读取一行
System.out
默认输出源是: 控制台
使用 System.setOut(PrintStream out) 可以更改输出源为某个文件
对象流
(反序列化)对象输入流ObjectInputStream(InputStream is)
(序列化)对象输入流ObjectOutputStream(OutputStream os)
writeObject(Object o) 必须实现Serializable接口
不被序列化的字段
static修饰的字段(属性)
transient 修饰的字段
版本ID
本地的版本ID一旦发生变化,之前序列化的所有文件都不可以进行反序列化了
Properties 类(掌握)
特有功能
getProperty(String key)
stringPropertyNames():获取所有键枚举(类似Map中的keySet())
load(InputStream is)\t//通过流将配置文件的键值对加载到Properties中(在开发中一般都是封装这个方法)
0 条评论
回复 删除
下一页