PrintWriter 打印流
包装流中,经常把BufferedReader和PrintWriter 放在一起使用
构造方法:
PrintWriter(Writer out,boolean autoFlush)
autoFlush为true 创建一个带有自动刷新行的writer对象
常用方法:
println(String s) 写入字符串并且换行
BufferedWriter 和 PrintWriter 区别:
1.PrintWriter可以实现自动刷新行
BufferedWriter需要调用flush或者close方法 来实现刷新
2.PrintWriter写入字符串后自动换行
BufferedWriter通过newLine()实现换行
-------------------------------------------------
获取当前项目src目录下的文件字节输入流InputStream
当前类.class.getClassLoader().getResourceAsStream("文件名");
获取当前类所在包下的文件输入字节流 (类相对路径)
当前类.class.getResourceAsStream("文件名")
---------------------------------------------------
随机流
RandomAccessFile
jdk中只有该流 能实现对同一个文件同时进行读写操作
常用方法:
getFilePointer() 获取当前指针位置
seek(long i) 设置指针的位置
---------------------------------------------------
Properties extends Hashtable
key 和 value 要求只能是字符串String
常用方法:
setProperty(String key,String value)
getProperty(String key)
作用:对配置文件进行读写操作
store(OutputStream out, comment)
store(Writer out, comment)
load(InputStream in)
load(Reader in)
练习:
1.定义一个方法: write()
当前项目的bin目录下写bean.properties文件
文件内容如下:
userDao=com.itany.dao.impl.UserDaoImpl
stuDao=com.itany.dao.impl.StuDaoImpl
userService=com.itany.dao.impl.UserServiceImpl
2.定义一个方法:read()
统计=后面部分以“ServiceImpl”结尾的个数N,将N写到result.txt文件中
----------------------------------------------------
1.文件分割 文件合并 properties应用 添加查询学生信息
2.在当前类的包下 有个a.txt文件(利用类相对路径读取文件)
内容格式:每行只有一个字符,没有空行
1.读取文件统计出文件总共多少行并且打印
2.统计每个字符出现的次数
3.按照gbk读取一个文件(文件是gbk格式),以utf8格式写入另一个文件
要求所有的“//” 所有单行注释的内容不写入,最后统计出单行注释的数量
a.txt gbk:
sdsds
//dsdas
//dsdsa
dsdsa
b.txt utf8:
sdsds
dsdsa