黑马程序员 IO流学习笔记二
2013-08-20 20:55
330 查看
----------android培训、java培训、java学习型技术博客、期待与您交流!----------
IO流学习笔记二:
通过学习毕老师的基础视频我们知道,按照流中元素的基本类型,流分为字节流和字符流两种:
字节流:以字节为流中元素的基本类型,每次读写的最小单位是一个字节,字节输入流类时InputStream类及其子类,字节输出流类是OutputStream类及其子类。
字符流:以字符为流中元素的基本类型,每次读写的最小单位是一个字符,在java中,是2字节的Unicode码。字符输入流是Reader类及其子类,字符输出流类是Writer类及其子类。
1、FileInputStream类实现对文件的读操作时的数据传输
FileInputStream类有两个常用的构造方法,FileInputStream(String name)和FileInputStream(File file),并提供int read()、int read(byte[] b) 和int read(byte[] b,int off,int len)这几个常用的方法用于读取输入流中的数据。
2、FileOutputStream类实现对文件的写入操作时的数据传输
FileOutputStream类的常用构造方法有FileOutputStream(File file)、FileOutputStream(String name)和FileOutputStream(String name,booleanappend),其中,FileOutputStream(String name,booleanappend)这个构造方法中的append参数指定是否以添加的方式写入,为true时数据添加至原文末尾(即续写),为false时数据从文件开始处写入数据(覆盖重写),默认为false。所以这里就必须注意了,在使用FileOutputStream的构造函数数时,若指定的文件不存在,则系统会新建一个文件后往文件里写入数据。若文件已经存在,当append取false时,会从头开始写入数据,这样会导致原有数据的丢失。FileOutputStream类提供write(int
b)、write(byte[] b)和write(byte[] b,int off,int len)这几个将数据写入流中的方法。
3、BufferedInputStream与BufferedOutputStream能够提供高效的字节流数据的读取与写入操作。
4、字节流还包括数据字节流、对象字节流和管道字节流(拓展知识)
(1)、数据字节流:java将基本数据类型数据的读写封装成了数据字节流,数据字节输入流DataInputStream类和数据字节输出流DataOutputStream类直接提供读写8种数据类型数据的方法。
(2)、对象字节流:对记录式文件进行读写操作,可以利用对象输入流ObjectInputStream类和对象输出流ObjectInputStream类以对象为单位读取或写入一个对象。
(3)、管道字节流:数据可以在内存的两个对象之间流动,管道流提供在对象之间传输数据的基本手段。管道输入流与输出流均可以是字节流,也可以是字符流。
----------android培训、java培训、java学习型技术博客、期待与您交流!----------
IO流学习笔记二:
通过学习毕老师的基础视频我们知道,按照流中元素的基本类型,流分为字节流和字符流两种:
字节流:以字节为流中元素的基本类型,每次读写的最小单位是一个字节,字节输入流类时InputStream类及其子类,字节输出流类是OutputStream类及其子类。
字符流:以字符为流中元素的基本类型,每次读写的最小单位是一个字符,在java中,是2字节的Unicode码。字符输入流是Reader类及其子类,字符输出流类是Writer类及其子类。
1、FileInputStream类实现对文件的读操作时的数据传输
FileInputStream类有两个常用的构造方法,FileInputStream(String name)和FileInputStream(File file),并提供int read()、int read(byte[] b) 和int read(byte[] b,int off,int len)这几个常用的方法用于读取输入流中的数据。
2、FileOutputStream类实现对文件的写入操作时的数据传输
FileOutputStream类的常用构造方法有FileOutputStream(File file)、FileOutputStream(String name)和FileOutputStream(String name,booleanappend),其中,FileOutputStream(String name,booleanappend)这个构造方法中的append参数指定是否以添加的方式写入,为true时数据添加至原文末尾(即续写),为false时数据从文件开始处写入数据(覆盖重写),默认为false。所以这里就必须注意了,在使用FileOutputStream的构造函数数时,若指定的文件不存在,则系统会新建一个文件后往文件里写入数据。若文件已经存在,当append取false时,会从头开始写入数据,这样会导致原有数据的丢失。FileOutputStream类提供write(int
b)、write(byte[] b)和write(byte[] b,int off,int len)这几个将数据写入流中的方法。
3、BufferedInputStream与BufferedOutputStream能够提供高效的字节流数据的读取与写入操作。
4、字节流还包括数据字节流、对象字节流和管道字节流(拓展知识)
(1)、数据字节流:java将基本数据类型数据的读写封装成了数据字节流,数据字节输入流DataInputStream类和数据字节输出流DataOutputStream类直接提供读写8种数据类型数据的方法。
(2)、对象字节流:对记录式文件进行读写操作,可以利用对象输入流ObjectInputStream类和对象输出流ObjectInputStream类以对象为单位读取或写入一个对象。
(3)、管道字节流:数据可以在内存的两个对象之间流动,管道流提供在对象之间传输数据的基本手段。管道输入流与输出流均可以是字节流,也可以是字符流。
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class BufferedReaderAndWriter { public static void main(String[] args) throws IOException { new BufferedReaderAndWriter("BufferedReaderAndWriter.java", "BufferedReaderAndWriter2.txt"); copyByteFile(); } private static String resFile;//文件名 private static String disFile;//拷贝后的文件名 BufferedReaderAndWriter(String resFile,String disFile){ BufferedReaderAndWriter.resFile = resFile; BufferedReaderAndWriter.disFile = disFile; } public static void copyByteFile() throws IOException{ BufferedReader bufr = new BufferedReader(new FileReader(resFile));//创建文件读取流对象 BufferedWriter bufw = new BufferedWriter(new FileWriter(disFile));////创建文件写入流对象 String buf = null;//字符缓冲区 while ((buf = bufr.readLine())!=null) { bufw.write(buf);//写入数据 bufw.newLine();//换行 bufw.flush();//刷新bufw的缓冲区 } bufr.close();//关闭读取流 bufw.close();//关闭写入流 } }
总结:流分为字节流和字符流两种
----------android培训、java培训、java学习型技术博客、期待与您交流!----------
相关文章推荐
- 【黑马程序员】Java学习笔记--IO流
- 黑马程序员学习笔记 IO流详解
- 黑马程序员 java学习笔记——IO流1
- 黑马程序员------IO流学习笔记(一)
- 黑马程序员------学习笔记(4)IO流中字符流操作
- 黑马程序员---黑马IO流学习笔记
- 黑马程序员_java基础学习笔记08_IO流
- 黑马程序员-Java学习笔记之IO流(三)
- 黑马程序员----Java中的IO流学习笔记2
- 黑马程序员------学习笔记(5)IO流中字节流操作
- 黑马程序员——Java学习笔记--IO流
- 黑马程序员----Java中的IO流学习笔记1
- 黑马程序员--学习笔记--IO流基础
- 黑马程序员--Java基础学习笔记【IO流-字符流】
- 黑马程序员_基础_IO流学习笔记_文本文件读取及复制、字符流的缓冲区和装饰设计模式
- 黑马程序员 IO流学习笔记一
- 黑马程序员-Java学习笔记之IO流(二)
- 黑马程序员--Java基础学习笔记【IO流-字节流、转换流】
- 黑马程序员_学习笔记4 IO流以及正则表达式解决一个传智播客的问题
- 黑马程序员 java学习笔记2-IO流