黑马程序员——Java基础--IO(二)

原创 2015年07月10日 12:47:03

-----------android培训java培训、java学习型技术博客、期待与您交流!------------

第二讲IO流基础知识

一、概述

简单的说IO技术用来在设备之间进行数据传输,数据就像水一样从一个设备流到另一个设备,上传文件和下载文件。

二、分类

按照流对象操作的文件分类:
    字节流:可以操作任意文件,任何文件都是以字节为存储最小单元的,8位流;
    字符流:人类可以直接识别的文件,文本文件,专门操作文本文件的,16位流,只要用文本工具打开,人可以直接看的明白(记事本,editplus,notepad),字符流在操作文本文件的时候,自己查询本机操作系统的默认编码表,GBK(简体中文编码表)。

按照流向分类:
    输出流:Java程序在写入一个文件,从程序中将数据写入到目的中;
    输入流:Java程序从文件中读取数据,从数据源中读取数据在Java程序。

其中:
    字节输出流:写任意文件
    字节输入流:读取任意文件
    字符输出流:写文本文件
    字符输入流:读取文本文件

三、IO流四大抽象基类

字节输出流:java.io.OutputStream  写任意文件
    写的方法: write(int a )写入单个字节
              write(byte[] bytes )写入字节数组
              write(byte[] b,int offset,int length )写入字节数组的一部分
              close() 释放操作系统资源

字节输入流:java.io.InputStream 读取任意文件
    读的方法: int read()读单个字节
              int read(byte[] bytes )读取的数据存储到字节数组
              int read(byte[] b,int offset,int length )读取的数据存储到字节数组的一部分
              close() 释放操作系统资源

字符输出流:java.io.Writer 写文本文件
    写的方法:write(int a) 写单个字符
             write(char[] ch)写入字符数组
             write(char[] ch,int offset,int length)写入字符数组的一部分
             write(String str)写入一个字符串
             write(String str,int offset,int lenght)写入一部分字符串
             flush()刷新该流的缓冲
             close() 释放操作系统资源

字符输入流:java.io.Reader 读取文本文件
    读的方法:int read()读取单个字符
             int read(char[] ch) 读取数据存储到字符数组
             int read(char[] ch,int offset,int length)读取数据一部分存储到数组
             close() 释放操作系统资源
注意:IO流中的子类的名字都是有要求的,子类名字的后缀是他父类的名字,子类名的前缀是操作的文件的名字。

四、IO流标准异常处理


package cn.itheima.trycatch;

import java.io.FileOutputStream;
import java.io.IOException;

public class IOStreamException {
	public static void main(String[] args) {
		FileOutputStream f = null;
		FileOutputStream f1 = null;
		try {
			f = new FileOutputStream("d:\\d.txt");
			f1 = new FileOutputStream("d:\\d1.txt");
			f.write(97);
			f1.write(98);
		} catch (IOException e) {
			// IO异常特殊,写文件,不要处理,让程序停下来
			e.printStackTrace();
			// 抛出运行时期异常
			throw new RuntimeException("文件写入失败");
		} finally {
			try {
				// 对f进行非空判断。防止空指针异常
				if (f != null) {
					f.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
				throw new RuntimeException("释放资源失败");
			} finally {
				try {
					if (f1 != null) {
						f.close();
					}
				} catch (IOException e) {
					e.printStackTrace();
					throw new RuntimeException("释放资源失败");
				}
			}
		}
	}
}


-----------android培训java培训、java学习型技术博客、期待与您交流!------------

相关文章推荐

黑马程序员-Java基础总结11——IO流(二)

IO流(二) ------- android培训、java培训、期待与您交流! ---------- ———————————————IO流中的其他流—————————————— 十、...
  • zms2100
  • zms2100
  • 2014年04月13日 05:00
  • 645

黑马程序员——JAVA基础----IO流(二)

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------ IO流(二) 01_IO流(字符流FileReader) ...
  • Du_jing
  • Du_jing
  • 2015年11月05日 15:03
  • 173

黑马程序员——JAVA基础------IO流(二)----字节流

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——一、IO流概述IO流:输入输出流(Input/Output)流是一组有顺序的,有起点和终点的字节集合,是对数据传输的...

黑马程序员——java基础--IO流(篇二)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、File类 二、递归 三、Properties类 四、打印流 五、切割流 六、其他功能的流...

黑马程序员——Java基础---IO(二)--File类、Properties类、打印流、序列流(合并流)

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------  第一讲     File类 一、概述 1、File类:文件和目录路径名的抽象表...

黑马程序员——Java基础--IO流(二)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- IO流(二) 一、Properties Properties是hashtable的...

黑马程序员——Java基础---IO(二)---对象流、管道流、RandomAccessFile、数据流、数组流、字符编码

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------ 学习笔记——IO流——对象流、管道流、RandomAccessFile、数据流、...

黑马程序员——Java基础---IO(二)--File类、Properties类、打印流、序列流(合并流)

第一讲     File类 一、概述 1、File类:文件和目录路径名的抽象表现形式 2、特点:         1)用来将文件或文件夹封装成对象         2)方...

黑马程序员——java基础知识之IO流(二)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- (一)缓冲区 缓冲区的出现是为了提高流的操作效率而出现的。 注意: 所以在创建缓冲区之前,必须要先有流对...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员——Java基础--IO(二)
举报原因:
原因补充:

(最多只允许输入30个字)