您的位置:首页 > 编程语言 > Java开发

java中的IO操作(二)【个人笔记】

2017-05-12 07:22 357 查看
能与流结合的集合——Properties

Map
|--Hashtable
|--Properties
Properties集合
特点:
1.该集合中的键和值都是字符串类型
2.集合中的数据可以保存到流中,或者从流中获取数据
  
通常该集合用于操作以键值对形式存在的配置文件

常用方法

setProperty(String key, String value);

load();

store(); //持久化

PrintStream:字节打印流

1,提供了打印方法可以对多种数据类型值进行打印。并保持数据的表示形式

2,不抛IOException异常

构造函数,接收三种类型的值
1,字符串路径

2,File对象

3,字节输出流

演示:

PrintStream out = new PrintStream("print.txt");
out.write(97);//文件中写入a
out.print(97);//文件中写入97
out.close();
PrintWriter:字符打印流

构造函数参数

1,字符串路径

2,File对象

3,字节输入流

4,字符输出流

演示:

BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(System.out);

String line = null;
while ((line = bufr.readLine()) != null) {
if ("over".equals(line)) break;
out.println(line);
out.flush();
}
out.close();
bufr.close();

流的序列化《合并》——SubsequenceInputStream
将几个输入流合并成一个流

ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();

al.add(new FileInputStream("info.txt"));
al.add(new FileInputStream("print.txt"));
al.add(new FileInputStream("test_myself.txt"));
Enumeration<FileInputStream> en = Collections.enumeration(al); //枚举
SequenceInputStream sis = new SequenceInputStream(en); //合并


对象的序列化(ObjectOutputStream)与反序列化(ObjectInputStream)
序列化:

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.object"));
oos.writeObject(new Person("小强", 30)); 反序列化
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.object"));
Person p = (Person)ois.readObject();

随机访问文件——RandomAccessFile
它不是IO体系中的子类

特点:

1.该对象既能读,又能写

2.该对象内部维护了一个byte数组,并通过指针可以操作数组中的元素
3.文件指针可以通过getFilePointer方法读取位置,通过seek方法设置位置

4.其实该对象就是将字节输入流和输出流进行了封装

5.该对象的源或者目的只能是文件。通过构造函数可以看出

常用方法:

getFilePointer();

seek();

管道流

PipedInputStream

PipedOutputStream

使用管道流要用上多线程

常用方法:connect

操作基本数据类型的流

DataInputStream

DataOutputStream

操作字节数组的流

ByteArrayInputStream

ByteArrayOutputStream
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息