----------- android培训、java培训、java学习型技术博客、期待与您交流! ---------
1:IO流
(1)分类
字节流:
输入流:
InputStream
int read()
int read(byte[] bys)
FileInputStream
BufferedInputStream
输出流:
OutputStream
write(int by)
write(byte[] bys,int index,int len)
FileOutputStream
BufferedOutputStream
字符流:
输入流:
Reader
int read()
int read(char[] chs)
FileReader
BufferedReader
String readLine()
输出流:
Writer
write(int ch)
write(char[] chs,int index,int len)
FileWriter
BufferedWriter
write(String line)
void newLine()
(2)到底使用谁?
如果能用记事本打开,不出现乱码,就优先使用字符流;否则用字节流。
确定上面的情况以后,一般都是用高效流(BufferedXxxx)
(3)复制文本文件:
9种方式:
字节流:
4种
基本流每次操作一个字节
基本流每次操作一个字节数组
高效流每次操作一个字节
高效流每次操作一个字节数组(★)
字符流:
5种
基本流每次操作一个字符
基本流每次操作一个字符数组
高效流每次操作一个字符
高效流每次操作一个字符数组(★)
高效流每次操作一行文本(★)
思路:
1. 创建缓冲字符输入流对象(建立于文件系统中文件的对应关系)
2. 创建缓冲字符输出流对象(建立于文件系统中文件的对应关系)
3. 使用输入流对象的read方法,读出源文件中内容(显示/其他操作)
4. 使用输出流对象的write方法,写入数据到目的地文件(需要刷新)
5. 关闭流,释放资源
怎么选择使用?
代码体现:
数据源:a.txt
目的地:b.txt
思路:
1. 创建缓冲字符输入流对象(建立于文件系统中文件的对应关系)
2. 创建缓冲字符输出流对象(建立于文件系统中文件的对应关系)
3. 使用输入流对象的read方法,读出源文件中内容(显示/其他操作)
4. 使用输出流对象的write方法,写入数据到目的地文件(需要刷新)
5. 关闭流,释放资源
代码体现:
//创建对象
BufferedReader br = null;
BufferedWriter bw = null;
try{
//实例化对象
br = new BufferedReader(new FileReader("a.txt"));
bw = new BufferedWriter(new FileWriter("b.txt"));
//读取内容
String len = null;
while((len = br.readLine())!= null){
//写入数据
bw.write(len);
bw.newLine();
bw.flush();
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(br != null){
try{
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(bw != null){
try{
bw.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
(4)复制二进制流数据:(图片,视频,音频等)
字节流:
4种
基本流每次操作一个字节
基本流每次操作一个字节数组
高效流每次操作一个字节
高效流每次操作一个字节数组(★)
怎么选择使用?
选用高效流每次操作一个字节数组
代码体现:
数据源:c:\\a.jpg
目的地:d:\\b.jpg
思路:
1. 创建缓冲字节输入流对象(建立于文件系统中文件的对应关系)
2. 创建缓冲字节输出流对象(建立于文件系统中文件的对应关系)
3. 使用输入流对象的read方法,读出源文件中内容(显示/其他操作)
4. 使用输出流对象的write方法,写入数据到目的地文件(需要刷新)
5. 关闭流,释放资源
//创建对象
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try{
//实例化对象
bis = new BufferedInputStream(new FileInputStream("c:\\a.jpg"));
bos = new BufferedOutputStream(new FileOutputStream("d:\\b.jpg"));
//读取
byte[] bys = new byte[1024];
int len = 0;
while((len = bis.read(bys))!= -1){
//写入数据
bos.write(bys,0,len);
}
}catch(IOException e){
e.printStackTrace();
}fianlly{
if(bis != null){
try{
bis.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(bos != null){
try{
bos.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
2:转换流(理解)
(1)如果有字节流对象,为了使用字符流的功能,就必须使用转换流进行操作。
(2)案例:
键盘录入数据
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferddWriter bw = new BufferedWriter(new FileWriter("a.txt"));
String line = null
while((line=br.readLine())!=null)
{
if("over".equals(line))
{
break;
}
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
把文本文件的数据通过流对象在控制台显示
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
BufferddWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = null
while((line=br.readLine())!=null)
{
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
3:打印流(掌握)
(1)打印流是写数据的。
(2)特点:
A:可以写任意数据类型的数据
B:如果启动了自动刷新,能自动刷新,还会换行。println()
C:可以直接往文件写数据
注意:哪些流对象可以直接读写文件?
看构造方法,如果同时有String和File的构造参数,那么该流对象就可以读写文件。
(3)用打印流改进复制文本文件的操作
数据源:
c:\\a.txt
目的地:
d:\\b.txt
BufferedReader br = new BufferedReader(new FileReader("c:\\a.txt"));
PrintWriter pw = new PrintWriter(new FileWriter("d:\\b.txt"),true);
String line = null;
while((line=br.readLine())!=null)
{
pw.println(line);
}
pw.close();
br.close();
4:序列化流(理解)
(1)序列化:把对象按照流一样的方式在网络中传输,或者存储到文本文件
反序列化:把流数据还原成对象
(2)如何实现序列化?
A:被序列化的对象所属的类必须实现序列化接口
B:用序列化流对象进行操作
(3)序列化(对象)流对象
ObjectInputStream:
Object readObject()
ObjectOutputStream:
void writeObject(Object obj)
(4)掌握:
A:看到类实现了序列化接口,就知道该类可以被序列化流对象操作
B:看到类实现了序列化接口,知道点击鼠标就可以解决黄色警告问题
5:字符编码(理解)
(1)编码表:
就是字符和对应的数据组成的一张表。
(2)常见的编码表:
ASCII
ISO-8859-1
GBK
GB2310
GB18030
UTF-8
BIG5 -- 自己问问度娘
(3)转换流中的编码问题
A:字符流 = 字节流+编码表
B:通过转换流写入数据,指定为UTF-8编码,并通过UTF-8编码读取。
6:Properties(理解)
(1)是Map体系一个集合类。
(2)特点:
A:可以把集合中的数据保存到文本文件,也可以把文本文件的数据加载到集合中。
B:该集合的键和值都是String类型
(3)特殊功能:
A:setProperty(String key,String value)
B:getProperty(String key)
getProperty(String key,String defaultValue)
C:Set<String> stringPropertyNames()
(4)和IO流结合的方法:
A:list 通过打印流把数据保存到文件中
B:load 通过任意流把文本中的数据加载到集合中
C:store 通过任意流把数据保存到文件中
(5)案例:
查找文件中是否有键为lisi的,如果有,则修改其值为50
----------- android培训、java培训、java学习型技术博客、期待与您交流! ---------
1:IO流
(1)分类
字节流:
输入流:
InputStream
int read()
int read(byte[] bys)
FileInputStream
BufferedInputStream
输出流:
OutputStream
write(int by)
write(byte[] bys,int index,int len)
FileOutputStream
BufferedOutputStream
字符流:
输入流:
Reader
int read()
int read(char[] chs)
FileReader
BufferedReader
String readLine()
输出流:
Writer
write(int ch)
write(char[] chs,int index,int len)
FileWriter
BufferedWriter
write(String line)
void newLine()
(2)到底使用谁?
如果能用记事本打开,不出现乱码,就优先使用字符流;否则用字节流。
确定上面的情况以后,一般都是用高效流(BufferedXxxx)
(3)复制文本文件:
9种方式:
字节流:
4种
基本流每次操作一个字节
基本流每次操作一个字节数组
高效流每次操作一个字节
高效流每次操作一个字节数组(★)
字符流:
5种
基本流每次操作一个字符
基本流每次操作一个字符数组
高效流每次操作一个字符
高效流每次操作一个字符数组(★)
高效流每次操作一行文本(★)
思路:
1. 创建缓冲字符输入流对象(建立于文件系统中文件的对应关系)
2. 创建缓冲字符输出流对象(建立于文件系统中文件的对应关系)
3. 使用输入流对象的read方法,读出源文件中内容(显示/其他操作)
4. 使用输出流对象的write方法,写入数据到目的地文件(需要刷新)
5. 关闭流,释放资源
怎么选择使用?
代码体现:
数据源:a.txt
目的地:b.txt
思路:
1. 创建缓冲字符输入流对象(建立于文件系统中文件的对应关系)
2. 创建缓冲字符输出流对象(建立于文件系统中文件的对应关系)
3. 使用输入流对象的read方法,读出源文件中内容(显示/其他操作)
4. 使用输出流对象的write方法,写入数据到目的地文件(需要刷新)
5. 关闭流,释放资源
代码体现:
//创建对象
BufferedReader br = null;
BufferedWriter bw = null;
try{
//实例化对象
br = new BufferedReader(new FileReader("a.txt"));
bw = new BufferedWriter(new FileWriter("b.txt"));
//读取内容
String len = null;
while((len = br.readLine())!= null){
//写入数据
bw.write(len);
bw.newLine();
bw.flush();
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(br != null){
try{
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(bw != null){
try{
bw.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
(4)复制二进制流数据:(图片,视频,音频等)
字节流:
4种
基本流每次操作一个字节
基本流每次操作一个字节数组
高效流每次操作一个字节
高效流每次操作一个字节数组(★)
怎么选择使用?
选用高效流每次操作一个字节数组
代码体现:
数据源:c:\\a.jpg
目的地:d:\\b.jpg
思路:
1. 创建缓冲字节输入流对象(建立于文件系统中文件的对应关系)
2. 创建缓冲字节输出流对象(建立于文件系统中文件的对应关系)
3. 使用输入流对象的read方法,读出源文件中内容(显示/其他操作)
4. 使用输出流对象的write方法,写入数据到目的地文件(需要刷新)
5. 关闭流,释放资源
//创建对象
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try{
//实例化对象
bis = new BufferedInputStream(new FileInputStream("c:\\a.jpg"));
bos = new BufferedOutputStream(new FileOutputStream("d:\\b.jpg"));
//读取
byte[] bys = new byte[1024];
int len = 0;
while((len = bis.read(bys))!= -1){
//写入数据
bos.write(bys,0,len);
}
}catch(IOException e){
e.printStackTrace();
}fianlly{
if(bis != null){
try{
bis.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(bos != null){
try{
bos.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
2:转换流(理解)
(1)如果有字节流对象,为了使用字符流的功能,就必须使用转换流进行操作。
(2)案例:
键盘录入数据
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferddWriter bw = new BufferedWriter(new FileWriter("a.txt"));
String line = null
while((line=br.readLine())!=null)
{
if("over".equals(line))
{
break;
}
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
把文本文件的数据通过流对象在控制台显示
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
BufferddWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = null
while((line=br.readLine())!=null)
{
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
3:打印流(掌握)
(1)打印流是写数据的。
(2)特点:
A:可以写任意数据类型的数据
B:如果启动了自动刷新,能自动刷新,还会换行。println()
C:可以直接往文件写数据
注意:哪些流对象可以直接读写文件?
看构造方法,如果同时有String和File的构造参数,那么该流对象就可以读写文件。
(3)用打印流改进复制文本文件的操作
数据源:
c:\\a.txt
目的地:
d:\\b.txt
BufferedReader br = new BufferedReader(new FileReader("c:\\a.txt"));
PrintWriter pw = new PrintWriter(new FileWriter("d:\\b.txt"),true);
String line = null;
while((line=br.readLine())!=null)
{
pw.println(line);
}
pw.close();
br.close();
4:序列化流(理解)
(1)序列化:把对象按照流一样的方式在网络中传输,或者存储到文本文件
反序列化:把流数据还原成对象
(2)如何实现序列化?
A:被序列化的对象所属的类必须实现序列化接口
B:用序列化流对象进行操作
(3)序列化(对象)流对象
ObjectInputStream:
Object readObject()
ObjectOutputStream:
void writeObject(Object obj)
(4)掌握:
A:看到类实现了序列化接口,就知道该类可以被序列化流对象操作
B:看到类实现了序列化接口,知道点击鼠标就可以解决黄色警告问题
5:字符编码(理解)
(1)编码表:
就是字符和对应的数据组成的一张表。
(2)常见的编码表:
ASCII
ISO-8859-1
GBK
GB2310
GB18030
UTF-8
BIG5 -- 自己问问度娘
(3)转换流中的编码问题
A:字符流 = 字节流+编码表
B:通过转换流写入数据,指定为UTF-8编码,并通过UTF-8编码读取。
6:Properties(理解)
(1)是Map体系一个集合类。
(2)特点:
A:可以把集合中的数据保存到文本文件,也可以把文本文件的数据加载到集合中。
B:该集合的键和值都是String类型
(3)特殊功能:
A:setProperty(String key,String value)
B:getProperty(String key)
getProperty(String key,String defaultValue)
C:Set<String> stringPropertyNames()
(4)和IO流结合的方法:
A:list 通过打印流把数据保存到文件中
B:load 通过任意流把文本中的数据加载到集合中
C:store 通过任意流把数据保存到文件中
(5)案例:
查找文件中是否有键为lisi的,如果有,则修改其值为50
----------- android培训、java培训、java学习型技术博客、期待与您交流! ---------
发表评论
-
日志地址
2015-05-04 20:19 243iteye博客 qq空间 -
黑马程序员_正则表达式
2015-05-04 10:56 559[b][/b]----------- android培 ... -
黑马程序员_设计模式
2015-05-04 10:55 434----------- android培训、java培训、ja ... -
黑马程序员_Map集合
2015-05-03 09:53 422----------- android培训、jav ... -
黑马程序员_Collection集合
2015-05-03 09:49 309----------- android培训、java培训、ja ... -
黑马程序员_异常
2015-05-03 09:38 305----------- android培训、java培训、ja ... -
黑马程序员_常用类库
2015-05-03 09:30 542----------- android培训、java培训、ja ... -
黑马程序员_网络编程
2015-05-03 09:56 481----------- android培训、jav ... -
黑马程序员_多线程
2015-05-02 20:28 351----------- android培训、java培训、ja ... -
黑马程序员_内部类
2015-05-02 20:24 396----------- android培训、java培训、ja ... -
黑马程序员_面向对象(三)
2015-05-02 20:22 358----------- android培训、jav ... -
黑马程序员_面向对象(二)
2015-05-02 20:18 319----------- android培训、jav ... -
黑马程序员_面向对象(一)
2015-05-02 17:55 439------------ android培训、ja ...
相关推荐
黑马程序员_毕向东_Java基础视频教程第18天-14-IO流(拷贝文本文件图例).zip
黑马程序员_毕向东_Java基础视频教程第18天-09-IO流(文件的续写)
黑马程序员_毕向东_Java基础视频教程第18天-12-IO流(文本文件读取练习).zip
黑马程序员_毕向东_Java基础视频教程第18天-13-IO流(拷贝文本文件).zip
黑马程序员_毕向东_Java基础视频教程第18天-11-IO流(文本文件读取方式二).zip
传智播客黑马程序员javaIO流重点总结(必读).doc
Java-IO流高级-例题 & 例题源码 & PPT教学文档(黑马程序员详细版)。
传智播客_Java培训_毕向东_Java基础[07-IO]系黑马程序员_毕向东_Java基础视频教程
行时所需要的基本条件和许多 Java 基础类,例如,IO 类、GUI 控件类、网络类等。JRE 是提供给 普通用户使用的,如果你只想运行别人开发好的 Java 程序,那么,你的计算机上必须且只需安装 JRE。 JDK(Java ...
这是根据黑马程序员中关于Vue11天课程中,跟着视频编写的代码,一行行跟着写出来的,连备注基本也是和视频一样,用的是vscode开发工具,上传的资料已经把node_modules删除了,进入目录后,用cnpm i重新安装一下就...
IO—黑马程序员Java学习笔记.rar
含面向对象,异常处理和常用类,线程技术,集合框架,IO操作,网络编程,文件操作,反射机制,
Java-IO流基础例题 & 例题源码 & PPT教学文档(黑马程序员详细版)。
|--IO将输入流转成字节 |--Json读js资源文件 |--layout布局样式之style配置 |--listview 页面 图片加文字 |--ListView之CursorAdapter异步查询框架之短信 |--ListView之动态添加子view |--ListView优化之分页加载 |...
Java二进制IO类与文件复制操作实例.rar Java从压缩包中提取文件.rar Java从网络取得文件.rar Java仓库管理系统,Access数据库.rar Java仿Vista界面风格的登录窗口.rar Java仿千千静听音乐播放器源代码.rar Java企业...
下面是装饰设计模式的一个例子,自己写的MyBufferedReader,并提供了myReadLine方法,IO包中类BufferedReader采用原理也是类似的。 /* 装饰设计模式:MyBufferedReader */ importjava.io.*; ...
黑马程序员——Java异步课程源码 plugin Lombok logback.xml 说明 课堂代码主要在 case_java8 子模块内,按章节划分, io.github.hank.java.concurrent.n2 - 同步与异步 io.github.hank.java.concurrent.n3 - Java...
我不知道有没有倒霉的小朋友和我一样,看黑马程序员的k8s初级视频的时候,需要安装docker-ce 然后在执行这一步命令 yum list docker-ce.x86_64 sowduplicates | sort -r 的时候报错 file contains no section ...
IO & Socket: 91 — 95 题 21 — 24 页 二、OOAD & UML: 96 — 101 题 24 — 25 页 三、XML: 102 — 105 题 26 — 29 页 四、SQL: 106 — 109 题 29 — 31 页 五、JDBC & Hibernate: 110 — 121 题 31 — 35 页...