当前位置:首页 > 开发 > 编程语言 > Java IO > 正文

Java IO 学习

发表于: 2010-02-05   作者:crabdave   来源:转载   浏览次数:
摘要: Java IO 学习(转)   一、概念        Java中对文件的操作是以流的方式进行的。流是Java内存中的一组有序数据序列。Java将数据从源(文件、内存、键盘、网络)读入到内存中,形成了流,然后将这些流还可以写到另外的目的地(文件、内存、控制台、网络),之所以称为流,是因为这个数据序列在不同时刻所操

Java IO 学习(转)

 

一、概念
       Java中对文件的操作是以流的方式进行的。流是Java内存中的一组有序数据序列。Java将数据从源(文件、内存、键盘、网络)读入到内存中,形成了流,然后将这些流还可以写到另外的目的地(文件、内存、控制台、网络),之所以称为流,是因为这个数据序列在不同时刻所操作的是源的不同部分。
 
二、分类
 
流的分类,Java的流分类比较丰富,刚接触的人看了后会感觉很晕。流分类的方式很多:
 
1、按照输入的方向分,输入流和输出流,输入输出的参照对象是Java程序。
 
2、按照处理数据的单位不同分,字节流和字符流,字节流读取的最小单位是一个字节(1byte=8bit),而字符流一次可以读取一个字符(1char = 2byte = 16bit)。
 
3、按照功能的不同分,分节点流和处理流,节点流是直接从一个源读写数据的流(这个流没有经过包装和修饰),处理流是在对节点流封装的基础上的一种流,FileInputStream是一个接点流,可以直接从文件读取数据,但是BufferedInputStream可以包装FileInputStream,使得其有缓冲功能。
 
其实除了以上三种分类外,还有一些常常听到的一些分类比如:对象流、缓冲流、压缩流、文件流等等。其实都是节点流和处理流的子分类。当然你也可以创建新的流类型,只要你需要。 

 

三、流分类的关系

 
不管流的分类是多么的丰富和复杂,其根源来自于四个基本的类。这个四个类的关系如下:
 
 
字节流
字符流
输入流
InputStream
Reader
输出流
OutputStream
Writer
 
 
四、字节流和字符流的相互转换
 
1、从字节流到字符流:InputStreamReader、OutputStreamWriter类可以实现。
 
2、从字符流到字节流:可以从字符流中获取char[]数组,转换为String,然后调用String的API函数getBytes() 获取到byte[],然后就可以通过ByteArrayInputStream、ByteArrayOutputStream来实现到字节流的转换。
 
五、读写文件示例代码

 

/** 
 * 读出1.txt中的内容,写入2.txt中 
 * Java的IO操作都是基于流进行操作的,为了提高读写效率一般需要进行缓冲。 
 */

import java.io.*;

public class ReadWriteFile {
	public static void main(String[] args) {
		try {

			File read = new File("c:\\1.txt");
			File write = new File("c:\\2.txt");

			BufferedReader br = new BufferedReader(new FileReader(read));
			BufferedWriter bw = new BufferedWriter(new FileWriter(write));
			String temp = null;
			temp = br.readLine();
			while (temp != null) {
				// 写文件
				bw.write(temp + "\r\n"); // 只适用Windows系统
				// 继续读文件
				temp = br.readLine();
			}

			bw.close();
			br.close();

		} catch (FileNotFoundException e) { // 文件未找到
			System.out.println(e);
		} catch (IOException e) {
			System.out.println(e);
		}
	}
}

 

Java IO 学习

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

我来说两句
评论内容:
验  证  码:
 
(网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。)
评论列表
已有 0 条评论(查看更多评论)
编辑推荐
IO两大主流,16位和8位 16位对应Writer 和 Reader 根据编程目的不同有 FileWriter和FileWriter 对文
单线程版本 reactor就是一个分发器 当收到client的accept请求时,转给acceptor来处理 当收到client
stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有
字节流与字符流 http://miaoxiaodong78.blog.163.com/blog/static/1876513620070119638402/ 文档 htt
输入/输出:概念性描述 I/O 简介 I/O ? 或者输入/输出 ? 指的是计算机与外部世界或者一个程序与计算
下图是java.io输入流的uml图 InputStream是表示字节输入流的所有类的超类。 需要定义 InputStream 子
IO 有具体的分类: 有具体的分类: 1:根据处理的数类型不同:字节流和字符流。 2:根据流向不同:
Java学习IO篇 Posted on 2013-09-05 11:06 DM张朋飞 阅读( 266) 评论( 0) 编辑 收藏 来吧,同志们,
java io 分类: java.io包中的是阻塞型IO;java.nio(new io)中的是非阻塞型IO。java.io采取等待数据
一、IO流的概念 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号