Java进阶03 IO基础(转载)
IO示例
下面是演示的文件file.txt
Hello World!
Hello Nerd!
import java.io.*;
public class Test{
public static void main(String[] args){
try{
BufferedReader br =
new BufferedReader(new FileReader("file.txt"));
String line = br.readLine();
while(line != null){
System.out.println(line);
line = br.readLine();
}
br.close();
}catch(IOException e){
System.out.println("IO Problem");
}
}
}
.png)
装饰器与功能组合
程序IO的关键在于创建BufferedReader对象br:
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
在创建的过程中,我们先建立了一个FileReader对象,这个对象的功能是从文件"file.txt"中读取字节(byte)流,并转换为文本流。在Java中,标准的文本编码方式为unicode。BufferedReader()接收该FileReader对象,并拓展FileReader的功能,新建出个BufferedReader对象。该对象除了有上述的文件读取和转换的功能外,还提供了缓存读取(buffered)的功能。最后,我们通过对br对象调用readLine()方法,可以逐行的读取文件。
(缓存读取是在内存中开辟一片区域作为缓存,该区域存放FileReader读出的文本流。当该缓存的内容被读走后(比如readLine()命令),缓存会加载后续的文本流。)
更多的组合
事实上,Java提供了丰富的装饰器。FileReader中合并了读取和转换两个步骤,并采用了常用的默认设置,比如编码采取unicode。我们可以使用FileInputStream + InputStreamReader的组合来替代FileReader,从而分离读取字节和转换两个步骤,并对两个过程有更好的控制。
(当然,FileReader的使用更加方便。InputStreamReader是将FileInputStream转换成一个Reader,用于处理unicode文本)
流的读写来自于四个基类: InputStream, OutputStream, Reader和Writer。InputStream和Reader是处理读取操作,OutputStream和Writer是处理写入操作。它们都位于java.io包中。
Reader和Writer及其衍生类是处理unicode文本。如我们看到的Buffered Reader, InputStreamReader或者FileReader。
InputStream 和OutputStream及其衍生类是处理字节(byte)流。计算机中的数据都可以认为是字节形式,所以InputStream和 OutputStream可用于处理更加广泛的数据。
写入
写入(write)操作与读取操作相似。我们可以通过使用装饰,实现复杂的写入功能。这里是一个简单的写入文本的例子:
.png)
import java.io.*;
public class Test{
public static void main(String[] args){
try{
String content = "Thank you for your fish.";
File file = new File("new.txt");
if(!file.exists()){
file.createNewFile();
}
FileWriter fw =
new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
}catch(IOException e){
System.out.println("IO Problem");
}
}
}
Java进阶03 IO基础(转载)的更多相关文章
- Java进阶03 IO基础
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/11/3000905.html 作者:Vamei 出处:http://www.cnblogs.com ...
- Java进阶02 异常处理(转载)
异常处理 Java的异常处理机制很大一部分来自C++.它允许程序员跳过暂时无法处理的问题,以继续后续的开发,或者让程序根据异常做出更加聪明的处理. Java使用一些特殊的对象来代表异常状况,这样对象称 ...
- java进阶(33)--IO流
一.IO流概念:1.基本概念2.IO流分类3.java.io流的四大家族4.流的close和flush方法5.java.id下常用的16个流 二.FileInputStream字节输入流1.FileI ...
- 【转载】Java IO基础总结
Java中使用IO(输入输出)来读取和写入,读写设备上的数据.硬盘文件.内存.键盘......,根据数据的走向可分为输入流和输出流,这个走向是以内存为基准的,即往内存中读数据是输入流,从内存中往外写是 ...
- java Vamei快速教程15 IO基础
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 计算机最重要的功能是处理数据.一个有用的计算机语言需要拥有良好的IO功能,以便让未 ...
- 归纳从文件中读取数据的六种方法-JAVA IO基础总结第2篇
在上一篇文章中,我为大家介绍了<5种创建文件并写入文件数据的方法>,本节我们为大家来介绍6种从文件中读取数据的方法. 另外为了方便大家理解,我为这一篇文章录制了对应的视频:总结java从文 ...
- 总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇
本文是Java IO总结系列篇的第3篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- 总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇
本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- 总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇
本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
随机推荐
- 多IDC GSLB的部署 - ADC技术博客 - 51CTO技术博客
多IDC GSLB的部署 - ADC技术博客 - 51CTO技术博客 A10
- 在C#中快速查询文件
相信使用过Everything的人都对其超快的搜索速度印象非常深刻,它的主要原理是通过扫描NTFS磁盘的USN Journal读取的文件列表,而不是磁盘目录,由于USN Journal非常小,因此能实 ...
- Using Dtrace OEL 6.X and Oracle® Solaris 11.3 DTrace (Dynamic Tracing) Guide
http://www.hhutzler.de/blog/using-dtrace/ https://docs.oracle.com/cd/E53394_01/html/E53395/gkyaz.htm ...
- ubuntu16.04 登录密码破解方法
1:开机按Shift键,出现如下界面.(手速要快,Shift键要按时间久一点) 选择第二项 2:按回车键进入如下界面,然后选中有recovery mode的选项(第三项) 3:按e进入如下界面,并找到 ...
- MapReduce初学习
内容来源,工具下载:点此链接 点此链接 Mapreduce概述: MapReduce是一种分布式计算模型,主要用于搜索领域,解决海量数据的计算问题.MR是由两个阶段组成,Map和Reduce,用户只 ...
- mssql性能优化
总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERVER6.5以前的版本或者ORA ...
- 使用Visual Studio的动态连接库创建通用数据库连接对话框
1.在VS(此处文件夹文件以vs2010为例)安装文件夹下("%Visual Studio安装文件夹%/Common10/IDE/Microsoft.Data.ConnectionUI.Di ...
- java 入门-helloWorld
Java 教程 Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言. Java可运行于多个平台,如Windows, Mac OS,及其他多种UNIX版本的系统. ...
- hibernate.cfg.xml文件连接mySql、Oracle、SqlServer配置
1.连接mySql,文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibe ...
- ES标准中的相等比较算法 SameValue SameValueZero
1.相等比较算法 The Abstract Equality Comparison Algorithm (==) The Strict Equality Comparison Algorithm (= ...