码迷,mamicode.com
首页 > 编程语言 > 详细

Java IO

时间:2015-08-27 00:46:27      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:java io

1、字符流与字节流
     字节流可以处理所有类型的数据,包括图片,文字,音频、视频等。在读取时,读到一个字节就返回一个字节。
     在Java中对应的类都以Stream结尾。
     
     字符流中仅能处理纯文本数据,如txt文本等。
     在Java中对应的类都以Writer或者Reader结尾
     
2、字符、字节与编码
     字节是通过网络传输信息或者在硬盘、内存中存储信息的单位,是计算机信息技术用于计量存储容量和传输容量的计量单位。
     1个字节等于8位二进制,即一个8位的二进制数。如0X01,0XFA等等
     
     字符是人们使用的记号,是抽象意义上的一个符号,如‘1‘,‘中‘,‘a‘,‘$‘ 等等
     
     字符集(Charset)也称作“编码”,各个国际和地区所制作不同ANSI编码标准中,都只规定了各自语言所需的“字符”。这些ANSI编码标准规定的内容包含两层含义:
     1)使用哪些字符。也就是说哪些汉字、字母和符号会被收入标准中,所包含的“字符”的合集就叫“字符集”。
     2)规定每个“字符”分别使用一个字节还是多个字节进行存储,使用哪些字节来存储,这个规定就叫“编码”。
     
     
3、下面是一个字符流读写例子:
package cn.lebo;

import java.io.*;

public class TestStream {

	public static void main(String[] args) {
		try {
			FileInputStream fis = new  FileInputStream("1.gif");
			FileOutputStream fos = new FileOutputStream("1.new.gif");
			byte input[] = new byte[10];
			while(fis.read(input) != -1){
				fos.write(input);
			}
			fis.close();
			fos.close();
			System.out.println("copy done");
		} 
		catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		catch (IOException e) {
			e.printStackTrace();
		}
		
	}

}



4、下面是一个使用带缓冲的字节流读取数据的例子
package cn.lebo;

import java.io.*;

public class TestBufferedByteStream {

	public static void main(String[] args) {

		try {
			FileInputStream fis = new FileInputStream("Microsoft Office 2010.iso");
			BufferedInputStream bis = new BufferedInputStream(fis,10000);
			FileOutputStream fos = new FileOutputStream("Microsoft Office 2010.new.iso");
			BufferedOutputStream bos = new BufferedOutputStream(fos,10000);
			
			byte data[] = new byte[5000];
			
			int count = 0;
			long before = System.currentTimeMillis();
			while(bis.read(data) != -1){
				bos.write(data);
				count ++;
			}
			
			fis.close();
			bos.close();
			fos.close();
			bos.close();
			
			System.out.println("读写了" + count + "次");
			System.out.println("耗费了" + (System.currentTimeMillis() - before) + "ms");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}


本文出自 “leboit” 博客,谢绝转载!

Java IO

标签:java io

原文地址:http://leboit.blog.51cto.com/1465210/1688601

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!