史上最骚最全最详细的IO流教程,没有之一( 九 )


打印流特点:

A:只操作目的地,不操作数据源
B:可以操作任意类型的数据
C:如果启用了自动刷新,在调用println()方法的时候,能够换行并刷新
D:可以直接操作文件
这个时候有同学就要问了,哪些流可以直接操作文件呢?答案很简单,如果该流的构造方法能够同时接收File和String类型的参数,一般都是可以直接操作文件的!
PrintStream是OutputStream的子类,PrintWriter是Writer的子类,两者处于对等的位置上,所以它们的API是非常相似的 。二者区别无非一个是字节打印流,一个是字符打印流 。
4.2 字节输出打印流PrintStream复制文本文件
4.3 字符输出打印流PrintWriter复制文本文件
5、Properties属性类我想各位对这个Properties类多多少少也接触过了,首先Properties类并不在IO包下,那为啥要和IO流一起讲呢?原因很简单因为properties类经常和io流的联合一起使用 。
(1)是一个集合类,Hashtable的子类
(2)特有功能
A:public Object setProperty(String key,String value)
B:public String getProperty(String key)
C:public Set stringPropertyNames()
(3)和IO流结合的方法
把键值对形式的文本文件内容加载到集合中
public void load(Reader reader)
public void load(InputStream inStream)
把集合中的数据存储到文本文件中
public void store(Writer writer,String comments)
public void store(OutputStream out,String comments)
5.1 Properties概述
java.util.Properties 继承于Hashtable,来表示一个持久的属性集 。它使用键值结构存储数据,每个键及其对应值都是一个字符串 。该类也被许多Java类使用,比如获取系统属性时,System.getProperties 方法就是返回一个Properties对象 。
5.2 Properties类
构造方法
public Properties() :创建一个空的属性列表 。
基本的存储方法
  • public Object setProperty(String key, String value) : 保存一对属性 。
  • public String getProperty(String key) :使用此属性列表中指定的键搜索属性值 。
  • public Set<String> stringPropertyNames() :所有键的名称的集合 。
与流相关的方法
public void load(InputStream inStream): 从字节输入流中读取键值对 。
参数中使用了字节输入流,通过流对象,可以关联到某文件上,这样就能够加载文本中的数据了 。现在文本数据格式如下:
加载代码演示:
文本中的数据,必须是键值对形式,可以使用空格、等号、冒号等符号分隔 。
怎么说呢,io流的基础回顾就先告一段落了,浅尝辄止 。循序渐进,实践中慢慢总结!更何况我还很low,依旧任重而道远 。
现在jdk已经出到13了,io流也有了许多的变化 。有时间会从头整理一下,一定会有机会的!




推荐阅读