读书人

黑马软件工程师_Java中IO流知识点及总

发布时间: 2012-10-09 10:21:45 作者: rapoo

黑马程序员_Java中IO流知识点及总结.

---------------------- android培训 、java培训 、期待与您交流! ----------------------

?

?

?

?

?

?

import java.io.FileWriter;

?

public class FileWriterDemo {

??? public static void main(String[] args){

?????? FileWriter fw=null;

?????? try {

?????????? fw = new FileWriter("demo.txt");

?????????? fw.write("nihaoma?");

??????????

?????? } catch (Exception e) {

?????????? e.printStackTrace();

?????? }finally{

?????????? try {

????????????? if(fw!=null)

????????????? fw.close();

?????????? } catch (Exception e) {

????????????? e.printStackTrace();

?????????? }

?????? }

??? }

}

mkdirs();创建多级文件夹.

isDirectory();isFile();通过这两方法可以判断封装完的对象是什么?

4.??????获取信息.getXXX();

?

列出目录下的所有内容,递归.

1.??????递归注意限定条件.

2.??????注意递归的次数,不要内存溢出.

?

Properties是hashtable的子类.也就是说它具备map集合的特点,而且它里边存储的键值都是字符串.是集合和IO技术相结合的集合容器.

该对象的特点:可以用于键值对形式的配置文件.

?

?

InputStreamReader 和OutputStreamWriter
明白这是什么转换流?按操作数据它们是什么流?
看JDK:InputStreamReader 是字节流通向字符流的桥梁;OutputStreamWriter 是字符流通向字节流的桥梁
明白这为什么是这样?明确接收什么流类型?为什么转成另一种流类型和转的过程?
我认为彻底明白了上面这些问题才算明白IO流的基础,才能知道什么流何时用合适.
自己刚学时也是一点不明白.到后面复习知识点时这在脑海中思路才清晰起来.

?

?

?

打印流PrintWriter与PrintStream?????? 可以直接操作输入流和文件.

该流提供了打印方法,可以将各种数据类型的数据都原样打印.

PrintStream构造函数可以接收的参数类型:

1.??????file对象.? File

2.??????字符串路径.??? String

3.??????字节输出流.??? OutputStream

字符打印流:PrintWriter构造函数可以接收的参数类型:

1.??????file对象.? File

2.??????字符串路径.??? String

3.??????字节输出流.??? OutputStream

4.??? 字符输出流??? Writer

?

序列流SequenceInputStream????? 对多个流进行合并.

表示其他输入流的逻辑串联.可以接收多个字节流对象,用enum形式来表示.

?

操作对象ObjectInputStream与ObjectOutputStream被操作的对象需要实现Serializable(标记接口).

?

管道流PipedInputStream和PipedOutputStream

对应的用connect相连接.

随机访问文件RandomAccessFile

该类直接继承自Object,不算是IO体系中子类,因为具备读写所以是IO包中成员.

内部封装了一个数组,而且通过指针对数组元素进行操作.可以通过getFilePointer获取指针位置,还可以通过seek改变指针位置.

其实能完成读写的原理就是内部封装了字节输入流和字节输出流,该类只能操作文件.而且操作文件还有模式.??? r? rw

该对象的构造函数要操作的文件不存在会自动创建,如果存在不会覆盖.

如果模式为r不会创建文件,只会读取,文件如果不存在会出异常.

如果模式为rw,文件不存在会创建,存 在不会覆盖.

?

操作基本数据类型的IO类

DateInputStream与DateOutputStream

操作字节数组

ByteArrayInputStream与ByteArrayOutputStream

这两个流对象都操作的数组,并没有使用系统资源,所以不用close关闭.

内存就是ArrayStream,用流的读写思想操作数组.

?

操作字符数组

CharArrayReader与CharArrayWriter

操作字符串

StringReader与StringWriter

?

字符编码:

编码:字符串变成字节数组? Stringàbyte[];???? str.getBytes();

解码:字节数组变成字符串.? byte[]àString:????? new String(byte[]);

服务器用的是ISO8859-1

<待续>

?

?

?

?

---------------------- android培训 、java培训 、期待与您交流! ----------------------

读书人网 >编程

热点推荐