IO流操作
来源:互联网 发布:网络游戏美工教程 编辑:程序博客网 时间:2024/06/08 07:18
今天学习IO包中的其他对象。
一、 打印流
a) PrintStream:在OutputStream基础上提供了增强的功能,可方便的输入各种类型,不再限于Byte类型。标准输出流System.out 方法println()多次重载输出的方法。构造方法PrintStream(Filefile) 参数为文件PrintStream(OutputStream out,Boolean autoFlush) 可以接受字节流对象,autoFlush表示是否自动刷新。checkError()方法测试此标志的值以表明是否出现异常。PrintStream的方法不会抛异常 System。Out是PrintStream的一个对象
b) PrintWriter 与PrintStream相似 它可以封装OutputSteam类型,而且能够封装Writer类型字符流
i. 节点流 PrintWriterps=new PrintWriter(“demo.txt”); File f=new File(“demo.txt”); PrintWriter ps=newPrintWriter(f,”gbk”); //第二个参数为编码方式
ii. 处理流 FileWriterfw=new FileWriter(“demo.txt”); PrintWriter pw=new PrintWriter(pw,true); 自动刷新 只对三个方法有效 println() printf() format() 也可对字节流进行封装 既能自动刷新,又能制定编码方式 OutoutStreamWriterosw=new OutputStreamWriter(new FileOutputStream(“demo.txt”),”utf-8”); PrintWriterpw1=new PrintWriter(newBufferedWriter(osw),true);
二、 操作基本数据类型的流对象
DataInputStream 属于处理流它能够以一种与机器无关的方式,直接从底层字节输入流读取Java基本数据类型和String类型的数据
i. DataInputStream(InputStream)
1. readInt() readLong() readDouble()等
ii. DataOutputStream (OutputStream) 与上同理 方法writerInt() readLong() readDouble()等。
三、 对象序列化 实现写和读 将对象的状态数据以字节流的形式进行处理。 把并行数据转换成串行数据的处理过程 写出对象的状态信息遍历该对象对其他对象的引用,递归,建立完成对象的序列化 类中静态成员是不会被序列化。
a) ObjectInputStream 对象
//几个对象 持久化到磁盘文件中去
Employee e1=new Employee("张三",25,"开发部");
Employee e2=new Employee("李四",30,"市场部");
//对象流
FileOutputStream fos=new FileOutputStream("obj.dat");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(e1);//对象序列化 想序列化的必须实现IO包下Serializable接口。没有抽象方法。一个标志。如果实现就可序列化
oos.writeObject(e2);
oss.close();
b) ObjectInputStream 对象
//读取文件
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("obj.dat"));
Employeee1=(Employee)ois.readObject(); //反序列化过程
Employeee2=(Employee)ois.readObject();
System.out.println(e1.toString());
System.out.println(e2.toString());
ois.close();
c)静态变量无法进行序列化。和带有关键字transient变量无法序列化
四、和流相关联的集合对象Properties 存放键值对 继承于Map类 不需要使用泛型,通常应用于应用程序的配置信息为键-值的配置文件
setProperty
(String key,String value)
存入数据的方法
getProperty
(String key)
获取值的方法
getProperty(String key,String defaultValue)
如果没有则返回默认值
list(PrintStream out)
将属性列表输出到指定的输出流。
FileReader fr=new FileReader("res/smple.properties");
pro.load(fr);
// pro.list(System.out); //控制台上输出
FileWriter fw=new FileWriter("res/sample.txt");
PrintWriter pw=new PrintWriter(fw);
pro.list(pw);
store
(Writer writer,String comments)
方法加载到Properties
表中的格式,将此Properties
表中的属性列表(键和元素对)写入输出流。
Set<String>
stringPropertyNames
()
返回此属性列表中的键集
Enumeration<?> propertyNames()
获取所有键的值,返回到一个枚举类中
- IO操作 流操作练习
- JAVA IO 流操作
- io流操作
- IO流操作
- Io流的操作。
- java io流操作
- java IO流操作
- js操作IO流
- IO流操作读写
- IO流操作规律
- IO流操作规
- IO流操作
- IO 流操作规律
- IO流操作规律
- Io流的操作
- java IO 流操作
- IO文件流操作
- IO流操作
- IO流操作与文件File操作
- 当你输入一个网址的时候,实际会发生什么?
- HttpClient 教程 (三)
- 不使用中间变量交换变量a、b变量
- 矩阵乘法
- IO流操作
- HttpClient 教程 (四)
- Android abd shell 命令
- HttpClient 教程 (五)
- java中如何调用CMD命令 Java基础人员请关注。
- 开机没多久就重启进去省点模式
- HttpClient 教程 (六)
- 警告对话框
- HttpClient_4 用法 由HttpClient_3 升级到 HttpClient_4 必看