转换流 Properties集合 序列化 工具
今日内容介绍
1、转换流
2、缓冲流
3、Properties集合
4、序列化流与反序列化流
5、commons-IO
===========================================================
1 转换流概述
   OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节
   将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去
2 OutputStreamWriter写文本文件
		步骤 OutputStreamWriter
			* java.io.OutputStreamWriter 继承Writer类
			* 就是一个字符输出流,写文本文件
			* write()字符,字符数组,字符串    
			* 字符通向字节的桥梁,将字符流转字节流
			* OutputStreamWriter 使用方式
			* OutputStreamWriter(OuputStream out)接收所有的字节输出流
			* 字节输出流:  FileOutputStream       
			* OutputStreamWriter(OutputStream out, String charsetName)
			* String charsetName 传递编码表名字 GBK  UTF-8 
			* OutputStreamWriter 有个子类,  FileWriter
3 转换流_字节转字符流过程
		3.1InputStreamReader			
			* java.io.InputStreamReader 继承 Reader
			* 字符输入流,读取文本文件
			* 字节流向字符的敲了,将字节流转字符流
			* 读取的方法:
				* read() 读取1个字符,读取字符数组
			* 技巧
				* OuputStreamWriter写了文件
				* InputStreamReader读取文件
			* OutputStreamWriter(OutputStream out)所有字节输出流
			* InputStreamReader(InputStream in) 接收所有的字节输入流
			* 可以传递的字节输入流: FileInputStream
			* InputStreamReader(InputStream in,String charsetName) 传递编码表的名字
                3.2 InputSteamReader读取文本文件
4 转换流子类父类
	 a: 继承关系
			OutputStreamWriter:
				|--FileWriter:
			InputStreamReader:
				|--FileReader;
5 缓冲流概述
	* 可提高IO流的读写速度
	* 分为字节缓冲流与字符缓冲流 
6 字节输出流缓冲流BufferedOutputStream
			* 字节输出流的缓冲流
			* java.io.BufferedOuputStream 作用: 提高原有输出流的写入效率
			* BufferedOuputStream 继承 OutputStream
			* 方法,写入 write 字节,字节数组			 
			* 构造方法:
				* BufferedOuputStream(OuputStream out)
				* 可以传递任意的字节输出流, 传递的是哪个字节流,就对哪个字节流提高效率  
 7 字节输入流缓冲流BufferedInputStream
			* 字节输入流的缓冲流
			* 继承InputStream,标准的字节输入流
			* 读取方法  read() 单个字节,字节数组			  
			* 构造方法:
			* BufferedInputStream(InputStream in)
			* 可以传递任意的字节输入流,传递是谁,就提高谁的效率
			* 可以传递的字节输入流 FileInputStream
8 四种文件复制方式的效率比较		
		* a: 四中复制方式
			* 字节流读写单个字节                    
			* 字节流读写字节数组                    
			* 字节流缓冲区流读写单个字节    		
			* 字节流缓冲区流读写字节数组
9 字符输出流缓冲流BufferedWriter
			* 字符输出流缓冲区流
			* java.io.BufferedWriter 继承 Writer
			* 写入方法 write () 单个字符,字符数组,字符串
* 构造方法:
				* BufferedWriter(Writer w)传递任意字符输出流
				* 传递谁,就高效谁
				* 能传递的字符输出流 FileWriter, OutputStreamWriter
10 字符输出流缓冲流BufferedWriter特有方法newLine
	 10.1: 方法介绍
			* void  newLine() 写换行
* newLine()文本中换行, \r\n也是文本换行
			* 方法具有平台无关性
			* Windows  \r\n
			* Linux    \n
* newLine()运行结果,和操作系统是相互关系
			* JVM: 安装的是Windows版本,newLine()写的就是\r\n
			* 安装的是Linux版本,newLine()写的就是\n
			/*
			 *  将数据源 c:\\a.txt
			 *  复制到 d:\\a.txt  数据目的
			 *  字节输入流,绑定数据源
			 *  字节输出流,绑定数据目的
			 *  
			 *  输入,读取1个字节
			 *  输出,写1个字节
			 */
11 字符输入流缓冲流BufferedReader
	概念
	* 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取
	* public String readLine() 读取一个文本行,包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
12 字符输入流缓冲流BufferedReader读取文本行
	* 字符输入流缓冲流
	* java.io.BufferedReader 继承 Reader
	* 读取功能 read() 单个字符,字符数组
	* 构造方法:
	* BufferedReader(Reader r)
	* 可以任意的字符输入流
	    FileReader  InputStreamReader       
	* BufferedReader自己的功能
	* String readLine() 读取文本行 \r\n   
	* 方法读取到流末尾,返回null
13 字符流缓冲区流复制文本文件
			/*
			 *  使用缓冲区流对象,复制文本文件
			 *  数据源  BufferedReader+FileReader 读取
			 *  数据目的 BufferedWriter+FileWriter 写入
			 *  读取文本行, 读一行,写一行,写换行
			 */
14 IO流对象的操作规律
	* A: IO流对象的操作规律
		* a: 明确一:要操作的数据是数据源还是数据目的。
			* 源:InputStream    Reader
			* 目的:OutputStream Writer
			* 先根据需求明确要读,还是要写。
* b: 明确二:要操作的数据是字节还是文本呢?
			* 源:
				* 字节:InputStream
				* 文本:Reader
			* 目的:
				* 字节:OutputStream
				* 文本:Writer
		* c: 明确三:明确数据所在的具体设备。
			* 源设备:
				* 硬盘:文件  File开头。
				* 内存:数组,字符串。
				* 键盘:System.in;
				* 网络:Socket
			* 目的设备:
				* 硬盘:文件  File开头。
				* 内存:数组,字符串。
				* 屏幕:System.out
				* 网络:Socket
				* 完全可以明确具体要使用哪个流对象。
		* d: 明确四:是否需要额外功能呢?
			* 额外功能:
				* 转换吗?转换流。InputStreamReader OutputStreamWriter
				* 高效吗?缓冲区对象。BufferedXXX
				* 已经明确到了具体的体系上。
17 Properties集合的特点
		17.1: Properties类介绍
			* Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串
		17.2: 特点
			* Hashtable的子类,map集合中的方法都可以用。
			* 该集合没有泛型。键值都是字符串。
			* 它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。
			* 有和流技术相结合的方法。
		17.3: 方法介绍
			* load(InputStream inputStream)  把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中
			* load(Reader reader) 按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)
			* store(OutputStream outputStream,String commonts) 把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息
			* stroe(Writer writer,String comments) 以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符
18、Properties集合存储键值对	
			*  集合对象Properties类,继承Hashtable,实现Map接口
			*  可以和IO对象结合使用,实现数据的持久存储
			* 使用Properties集合,存储键值对
			* setProperty等同与Map接口中的put
			* setProperty(String key, String value)
			* 通过键获取值, getProperty(String key)
19 Properties集合的方法load
		19.1 方法介绍
			* Properties集合特有方法 load
			* load(InputStream in)
			* load(Reader r)
			* 传递任意的字节或者字符输入流
			* 流对象读取文件中的键值对,保存到集合
20 Properties集合的方法store
		20.1方法介绍			
			* Properties集合的特有方法store
			* store(OutputStream out)
			* store(Writer w)
			* 接收所有的字节或者字符的输出流,将集合中的键值对,写回文件中保存
21 对象的序列化与反序列化
		概念
	         * 对象的序列化
				* 对象中的数据,以流的形式,写入到文件中保存过程称为写出对象,对象的序列化
				* ObjectOutputStream将对象写道文件中,实现序列化
		* 对象的反序列化
				* 在文件中,以流的形式,将对象读出来,读取对象,对象的反序列化
				* ObjectInputStream 将文件对象读取出来
22 ObjectOutputStream流写对象
		简单介绍
			 *  IO流对象,实现对象Person序列化,和反序列化
			 *  ObjectOutputStream 写对象,实现序列化
			 *  ObjectInputStream 读取对象,实现反序列化
23ObjectInputStream流读取对象
	       简单介绍
			* ObjectInputStream
			* 构造方法:ObjectInputStream(InputStream in)
			* 传递任意的字节输入流,输入流封装文件,必须是序列化的文件
			* Object readObject()  读取对象
注意 静态不能序列化
	 原因
			* 序列化是把对象数据进行持久化存储
			* 静态的东西不属于对象,而属于类
24 commons-io工具类介绍
工具类介绍
			* 解压缩commons-io-2.4.zip文件
			* commons-io-2.4.jar需要导入到项目中的jar包,里面存放的是class文件
			* commons-io-2.4-sources.jar工具类中原代码
			* docs是帮助文档
24 使用工具类commons_io
		24.1: 导入jar包
			* 加入classpath的第三方jar包内的class文件才能在项目中使用
			* 创建lib文件夹
			* 将commons-io.jar拷贝到lib文件夹
			* 右键点击commons-io.jar,Build Path→Add to Build Path
25 IO工具类FilenameUtils
	方法介绍
			* getExtension(String path):获取文件的扩展名;
			* getName():获取文件名;
			* isExtension(String fileName,String ext):判断fileName是否是ext后缀名;
26 IO工具类FileUtils
	方法介绍
			* readFileToString(File file):读取文件内容,并返回一个String;
			* writeStringToFile(File file,String content):将内容content写入到file中;
			* copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制
			* copyFile(File srcFile,File destFile);文件复制
转换流 Properties集合 序列化 工具的更多相关文章
- IO流的Properties集合,序列化流与反序列化流,打印流及commons-IO
		内容介绍 Properties集合 序列化流与反序列化流 打印流 commons-IO Properties类 Properties类介绍 Properties 类表示了一个持久的属性集.Proper ... 
- Java(35)IO特殊操作流&Properties集合
		作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228454.html 博客主页:https://www.cnblogs.com/testero ... 
- IO流(File类--递归--过滤器--IO字节流--IO字符流--Properties集合--缓冲流--转换流--序列化流--打印流)
		一.File类 1.1概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 1.1.1相对路径与绝对路径 相对路径从盘符开始的路径,这是一个完整 ... 
- IO流总结---- 字节流 ,字符流, 序列化 ,数据操作流,打印流 , Properties 集合
		笔记内容: 什么是流 字节流 字符流 序列化 数据操作流(操作基本数据类型的流)DataInputStream 打印流 Properties 集合 什么是流: 流是个抽象的概念,是对输入输出设备的抽象 ... 
- Java自学第10期——File类与IO流(输入输出流、处理流、转换流、缓冲流、Properties集合、打印流)
		1.IO简介 IO(输入输出)通过java.io包下的类和接口来支持,包下包括输入.输出两种IO流,每种输入输出流又可分为字符流和字节流两大类. 2.File类 File类是io包下与平台无关的文件和 ... 
- java:IO流(处理流(缓冲流,转换流,数据流),对象的序列化,Properties)
		字节缓冲流:(BufferedInputStream,BufferedOutStream) *按照流的功能来分:节点流和处理流 *节点流可以直接操作数据源: *InputStream *--FileI ... 
- 10缓冲流、转换流、序列化流、Files
		十.流 10.1 缓冲流 10.1.1 概述 缓冲流是对4个基本的FileXxx流的增强,所以也是4个流,按照数据类型进行分类 ... 
- IO(Properties、序列化流、打印流、CommonsIO)
		第1章 Properties类 1.1 Properties类介绍 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字 ... 
- Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)
		1.操作基本数据类型的流 1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ... 
随机推荐
- BZOJ - 2142 礼物 (扩展Lucas定理)
			扩展Lucas定理模板题(貌似这玩意也只能出模板题了吧~~本菜鸡见识鄙薄,有待指正) 原理: https://blog.csdn.net/hqddm1253679098/article/details ... 
- 从零开始的acm竞赛生涯
			经过了一段时间的训练,自己的成绩还是很不理想.回首过往,感觉自己还是练得太少,一直没有进入状态,缺乏硬怼出题的能力,思维也不够快,赛场上各种被卡题.可以说,我之前的训练有些仓促,还没有达到入门的水准, ... 
- HttpServletRequest获取请求得URL信息
			request对象中包含的是请求信息,当我们在浏览器地址栏上输入:http://localhost:8080/Example/AServlet?username=zhangsan,这段地址也会作为请求 ... 
- MAC的VMWare CentOS 6.8命令笔记
			1.图形界面切换到命令行界面 真正的Linux切换界面使用命令, Ctrl + Alt + Fn (1,2,3,4,5,6) Wondows平台 Ctrl + option + F ... 
- PADS Layout CAM 的中高级焊盘选项
			PADS Layout CAM 的中高级焊盘选项 PADS CAM Gerber 输出非常灵活. 以至于很多人跳坑. 以这个这选项,最好的方式就是不勾. 
- 基于BP神经网络的字符识别研究
			基于BP神经网络的字符识别研究 原文作者:Andrew Kirillov. http://www.codeproject.com/KB/cs/neural_network_ocr.aspx 摘要:本文 ... 
- keepalived之 ipvsadm-1.26-4(lvs)+  keepalived-1.2.24 安装
			一.安装 LVS 前提:已经提前配置好本地 Yum 源 配置过程可参考> http://blog.csdn.net/zhang123456456/article/details/56690945 ... 
- zabbix监控进程
			参考http://chenx1242.blog.51cto.com/10430133/1837990 1 前期说明 zabbix_server查看“文件在后台运行数量”所对应的key就是:proc.n ... 
- python3 之 格式化json
			import json json_string = None with open("json_file.json") as f: json_string = f.read() tr ... 
- PhantomJS python 截屏
			参考:https://www.cnblogs.com/LanTianYou/p/5578621.html # coding:utf8 from time import sleep from selen ... 
