I/O流(2)

来源:互联网 发布:淘宝助手在哪 编辑:程序博客网 时间:2024/04/29 14:52

1:DataStream:

可以针对Java中基本数据类型进行读写,构造方法:DataInputStream(InputStream is); 

DataOutputStream(OutputStream os);  readChar();打印出来是x;??


2:ByteArrayStream:

内存操作流:当程序结束时,流对象或者其他一些元素会从内存中消失.

ByteArrayOutputStream:将数据写入到内存中去.close():可以不调用,因为源码中没有进行任何操作.


3:PrintStream:

1) 字节打印流:

PrintStream:  PrintStream ps = System.out;  标准输出流

2) 字符打印流:

PrintWriter: 字符打印流不能操作源文件,只能操作目的文件;该流可以直接对文本文件进行操作,写到一个文件上.

构造方法:  public PrintWriter(String dest) throws FileNotFoundException

print(): 可以打印任何数据类型,包括对象;      println(空参): 相当与换行.

第二种构造方法: public PrintWriter(OutputStream os,boolean autoFlush); 自动刷新功能


4:标准输入流和输出流:

标准输入流: InputStream is = System.in            标准输出流: PrintStream ps = System.out

转换流的应用:  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

BufferedWriter bw = new BufferedWriter(OutputStreamWriter(System.out));


5:RandomAccessFile

随机访问流:不是一个具体的流,它是Object的子类,该类的实例支持对随机访问文件的读取和写入

构造方法: public RandomAccessFile(String FileName,String mode);mode:可读可写

public long getFilePointer(): 返回的是文件当前偏移量,字节的个数.


6:合并流:

SequenceInputStream: 针对多个数据源进行操作,不能对目的文件进行操作.

构造方法:public SequenceInputStream(InputStream is1,InputStream is2); 对两个进行操作

public SequenceInputStream(Enumeration e); 对多个进行操作

Vector集合中的elements()方法返回的是一个  Enumeration


7:序列化和反序列化:

序列化:就是将Java提供的一些类对象或者是自己定义的类以流的形式写入到网络中或者文本文件中(ObjectOutputStream)

反序列化: 将文本文件或者网络中的数据转换为以对象形式存在(ObjectInputStream)

在自义定的类中必须实现Serializeable接口,相当于有一个标记,还要生成一个可序列号:随着该类的变化而变化.


8:属性集合类:

Properties:在实际开发中,该类常被用来作为配置文件,同时存在键值对,有映射关系,但是没有泛型.该类继承HashTable,所以也具有Map集合的功能.

特有方法:public String getProperty(String key); 返回的是这个key对应的值

public object setProperty(String key,String value); 返回的之前key对应的值.

public Set<String> stringPropertyNames();返回的是这个属性列表中所有键的集合.

public void load(Reader read);将文本文件中的内容读取到属性集合类中

public void store(Writer write,String comments);将属性集合类中的内容写入到文本文件中,comments:属性列表的描述

原创粉丝点击