黑马程序员_IO流学习总结
2013-03-17 13:37
417 查看
android培训、java培训、期待与您交流!
流的概念:
1,明确源和目的。
源:输入流。InputStream Reader
目的:输出流。OutputStream Writer。
2,操作的数据是否是纯文本。
是:字符流。
不是:字节流。3,当体系明确后,在明确要使用哪个具体的对象。
通过设备来进行区分:
源设备:内存,硬盘。键盘
目的设备:内存,硬盘,控制台。
字节流示例:从E:\\KuGou路径拷贝一个音乐文件,到C盘根目录。
流的概念:
在面向对象的语言中,数据的输入和输出都是通过流来实现的。数据流是一种有顺序、有起点和终点的字符集合。
流的分类:
按照数据流的流向划分可以分为输入流和输出流。
输入流:可以对数据进行读取操作的类称为输入流,输入流都继承自抽象类InputStream
输出流:一个能过将字节流传送出去的类被称为输出流,所有的输入流都继承自抽象类OutStream
按照数据流的操作数据的单位分类可以分为字节流和字符流。
字符流:字符流对数据的操作一字符为单位,只能操作文本数据。
字节流:字节流对数据的操作以一个字节(8bit)为一个单位进行处理,因为所有文件在计算机中被转换为2进制,所以字节流可以操作所有数据。
注意:仅当操作纯文本数据是选用字符流进行操作,其他媒体数据一律选用字节流。
流的层次关系:
字节流常用类
InputStream 这是一个抽象类,表示所有字节输入流的超类
FileInputStream 用于读取诸如图像数据之类的原始字节流
BufferedInputStream 字节输入流缓冲区,能对字节输入流的功能进行增强
OutPutStream 这是一个抽象类,表示所有字节输入流的超类
FileOutputStream 用于写入诸如图像数据之类的原始字节流
BufferedOutStream 字节输出流缓冲区
字符流常用类
Reader 用于读取字符流的抽象类
FileReader 用于读取文本文件的便捷类
BufferedReader 用于读取文本的缓冲区,能对Reader功能进行增强
InputStreamReader 是字节流通向字符流的桥梁:能够将字节流转换为字符流
Writer 用于写入字符流的抽象类
FileWriter 用于写入文本文件的便捷类
BufferedWriter 将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
OutStreamWriter 是字符流通向字节流的桥梁: 流操作规律:
1,明确源和目的。
源:输入流。InputStream Reader
目的:输出流。OutputStream Writer。
2,操作的数据是否是纯文本。
是:字符流。
不是:字节流。3,当体系明确后,在明确要使用哪个具体的对象。
通过设备来进行区分:
源设备:内存,硬盘。键盘
目的设备:内存,硬盘,控制台。
流的使用: 字符流示例:拷贝一个字符文件
import java.io.*; class CopyTxt { public static void main(String[] args) throws Exception { //定义文件读取流对象,并指定要拷贝的文本文件 FileReader fr=new FileReader("\\java\\CopyTxt.java"); //定义文件写入流对象,并指定文件保存的位置 FileWriter fw=new FileWriter("C:\\CopyTxt.java"); //定义读取流缓冲区对象,传入fr以便跟好的操作数据。 BufferedReader bufr=new BufferedReader(fr); String line=null; while((line=bufr.readLine())!=null) { fw.write(line+"\r\n");//读取一行就写入一行数据。 } bufr.close();//关闭读取流 fw.close();//关闭写入流 } }
字节流示例:从E:\\KuGou路径拷贝一个音乐文件,到C盘根目录。
import java.io.*; class CopyMp3 { public static void main(String[] args) throws Exception { //定义文件读取流对象,并指定要拷贝的Mp3文件 FileInputStream fis=new FileInputStream("E:\\KuGou\\刘德华 - 冰雨.mp3"); //定义文件写入流对象,并指定文件保存的位置 FileOutputStream fos=new FileOutputStream("C:\\刘德华 - 冰雨.mp3"); //定义读取流缓冲区对象,传入fis以便跟好的操作数据。 BufferedInputStream bufs=new BufferedInputStream(fis); byte[] buf=new byte[1024]; int len=0; while((len=bufs.read(buf))!=-1) { fos.write(buf,0,len); } bufs.close();//关闭读取流 fos.close();//关闭写入流 } }键盘录入:将键盘录入的文本存入到指定文件中
import java.io.*; class KeyBoarding { public static void main(String[] args) throws Exception { //获取键盘录入 BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in)); //定义文件写入流,指定文件存放路径。定义文件写入流 FileWriter fw=new FileWriter("C:\\KeyBoarding.txt"); String line=null; while((line=bufr.readLine())!=null)// { fw.write(line+"\r\n");//如果读取一行数据不为空就写入输入流。 if(line.equals("over")) break; fw.flush();//刷新输入流 } bufr.close();//关闭输出流缓冲区。 } }
相关文章推荐
- 黑马程序员学习(十) IO流学习总结
- 黑马程序员--------Java IO流学习总结
- 黑马程序员__关于学习IO流中的字节流的总结
- 黑马程序员 java IO流学习总结
- 黑马程序员--学习IO流的一些总结
- 黑马程序员__关于学习Java的IO流中FileReader的总结
- 黑马程序员__关于学习Java中IO流的FileWriter的总结
- 黑马程序员-JAVA基础学习日记八——IO流的学习总结
- 黑马程序员__关于学习IO流字符流的缓冲区总结
- 黑马程序员--Java学习日记之复习总结(递归以及IO流概述)
- 黑马程序员——学习日记之--IO流学习总结
- 黑马程序员——Java编程语言学习总结 – IO流
- [黑马程序员]多线程学习总结
- Java IO流学习总结
- 黑马程序员 JAVA学习笔记——IO流基础篇
- 【黑马程序员】Java学习笔记--IO流
- 黑马程序员-20141211学习总结
- 【黑马程序员】银行业务调度系统学习总结
- 黑马程序员——C语言基础学习(一)---C语言中的基本概念总结
- 黑马程序员_java_IO流总结(下)