IO的学习与使用
一、IO的学习方法:IO中包含了很多的类,推荐的学习方式是:“举一反三,掌握一种,以此类推”。
二、I/O操作的目标:
输入:从数据源(在数据源和程序之间建立的一个数据流淌的“管道”)中读取数据(文件、键盘、网络……)
输出:将数据写入到数据目的地当中(文件、屏幕、网络……)
注意:输入和输出是一个流向问题,从一个数据源读取数据到“java程序中”;从java程序输出数据到其他地方。输出输入相对于java程序本身
三、IO分类
一、第一种分法
1、 输入流
2、 输出流
二、第二种分法
1、字节流
2、字符流
三、第三种分法
1、节点流(普通的水管)
2、处理流(普通的水管+在水管外面再加一层):在节点流的基础上对数据做进一步处理
四、字节流与字符流
字节流:
1、InputStream/OutputStream是是所有字节输入流/输出流的父类,在Java的I/O流中所有对字节流处理的类,字节流都继承自InputStream类和OutputStream类,这是两个抽象类。
2、字节流示例:
public static void main(String[] args) {
FileInputStream fileInputStream=null;
FileOutputStream fileOutputStream=null;
try{
fileInputStream=new FileInputStream("e:/a.txt");
fileOutputStream=new FileOutputStream("e:/b.txt");
byte[] buffer=new byte[1024];
while (true){
int temp=fileInputStream.read(buffer,0,buffer.length);
if(temp==-1){
break;//跳出当前循环
}
//读取a文件中的数据
fileOutputStream.write(buffer,0,temp);
}
}catch (Exception e){
System.out.println("111");
}
finally {
try{
fileInputStream.close();
fileOutputStream.close();
}catch (Exception e){
System.out.println("读取文件失败");
}
}}
字符流:
1、Reader/Writer是是所有字节输入流/输出流的父类,在Java的I/O流中所有对字符流处理的类,字符流都继承自InputStream类和OutputStream类,这是两个抽象类。
2、使用示例:
public static void main(String[] args) {
FileReader fr=null;
BufferedReader br=null;
BufferedWriter bw=null;
try{
fr=new FileReader("e:/a.txt");
br=new BufferedReader(fr);
String line=null;
while (true){
line=br.readLine();
if(line==null){
break;
}
System.out.println(line);
}
}catch (Exception e){
System.out.println("文件读取失败");
}finally {
try{
fr.close();
}catch (Exception e){
System.out.println("444");
}
}
}
五、节点流和处理流
这里涉及到“装饰者模式”设计,具体见:https://i.cnblogs.com/EditPosts.aspx?opt=1
IO的学习与使用的更多相关文章
- Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream
Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ ...
- Java IO流学习总结八:Commons IO 2.5-IOUtils
Java IO流学习总结八:Commons IO 2.5-IOUtils 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/550519 ...
- Java IO流学习总结(1)
Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本 ...
- Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter
在上一篇文章中Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream介绍了缓冲流中的字节流,而这一篇着重介绍缓冲流中字符流Buffered ...
- Java IO流学习总结一:输入输出流
Java IO流学习总结一:输入输出流 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54292148 本文出自[赵彦军的博客] J ...
- Java IO流学习
Java IO流学习 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是 ...
- 系统吞吐量(TPS)、用户并发量、性能测试、IO负载学习
目录 . 如何评价一个系统的性能 . 系统吞度量 . 网络上下行数据量 . 客户端-服务端TCP同时长连接数量 . 系统性能的指标计算 . 系统IO负载 1. 如何评价一个系统的性能 在文章的开始,我 ...
- IO流学习小结
今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...
- JAVA.IO流学习笔记
一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...
- (转载) java:IO流学习小结
今天刚刚看完Java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...
随机推荐
- python写BMI指数菜单
需求: # 1.创建并输出菜单, 菜单是不可变的. 所以使用元组menus = ("1, 录入", "2, 查询", "3, 删除", &q ...
- 【Java】判断字符串是否包含子字符串
JAVA里面判断: public static void main(String[] args) { String str="ABC_001"; if(str.indexOf(&q ...
- CF487E Tourists 【圆方树 + 树剖 + 堆】
题目链接 CF487E 题解 圆方树 + 树剖 裸题 建好圆方树维护路径上最小值即可 方点的值为其儿子的最小值,这个用堆维护 为什么只维护儿子?因为这样修改点的时候就只需要修改其父亲的堆 这样充分利用 ...
- CF765F Souvenirs 解题报告
CF765F Souvenirs 题意翻译 给出\(n(2 \le n \le 10^5 )\) ,一个长为\(n\)的序列\(a(0 \le a_i \le 10^9 )\). 给出\(m(1\le ...
- 公告:开通csdn博客,敬请关注!
公告:开通csdn博客,敬请关注!地址:https://blog.csdn.net/cyjch
- maven 启动 tomcat 及 跳过 test 安装
1.先在pom文件中配置 tomcat插件 <!-- 文件上传组件 --> <dependency> <groupId>commons-fileupload< ...
- Codeforces Round #305 (Div. 2) D 维护单调栈
D. Mike and Feet time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- bzoj 4332: JSOI2012 分零食 快速傅立叶变换
题目: Description 同学们依次排成了一列,其中有A位小朋友,有三个共同的欢乐系数O,S和U.如果有一位小朋友得到了x个糖果,那么她的欢乐程度就是\(f(x)=O*x^2+S*x+U\) 现 ...
- python并行编程学习之并行计算存储体系结构
基于指令和可被同时处理的存储单元的数目,计算机系统可以分为以下四种类目: 单指令,单数据单元(SISD)在该体系结构中,计算机是单处理器机器,一次只能用单一的指令来操作单一的数据流.在SISD中,机器 ...
- javascript和bigint
http://note.youdao.com/noteshare?id=91e21eb1d8c20025d72d7ee6f401e34d