黑马程序员——Java基础--IO(二)
来源:互联网 发布:安嘉和 知乎 编辑:程序博客网 时间:2024/05/19 04:06
-----------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基础--IO流(二)
- 黑马程序员——Java基础--IO(二)
- 黑马程序员——Java基础--------IO流(二)
- 黑马程序员——JAVA基础----IO流(二)
- 黑马程序员——Java基础——IO(二)
- 黑马程序员——Java基础---IO流(二)
- 黑马程序员——java基础-IO(二)
- 黑马程序员——Java基础---IO(二)
- 黑马程序员—Java基础(二)
- 黑马程序员——java基础——IO流(二)
- 黑马程序员——Java基础——IO流(二)
- 黑马程序员——java基础—IO流(二)
- 黑马程序员——java基础--IO流(篇二)
- 黑马程序员——JAVA基础------IO流(二)----字节流
- 黑马程序员——Java基础IO流总结(二)
- 黑马程序员—java基础学习--IO ( Input Output )流(二)
- 黑马程序员--Java基础--10IO(二)
- 黑马程序员-----java基础IO流<二>
- AVR下载烧写的复杂熔丝设置尿性
- 安卓相对布局
- java是要这样去学习的
- [leetcode91]Restore IP Addresses(java)
- 部分运算符只能用友元函数(全局函数)重载 以及链式法则
- 黑马程序员——Java基础--IO(二)
- AFNetworking 图片的本地缓存问题
- Shortest Prefixes(字典树)
- 新装Linux无法联网
- 关于Android知识的杂乱总结
- [转]_CRT_SECURE_NO_WARNINGS
- iOS开发-Xcode Debug、Release、Archive、Profile、Analyze概念解释
- PHP学习笔记(二)数据库操作那点事
- socket的流编程和数据报编程