io基础总结
来源:互联网 发布:ubuntu中删除文件夹 编辑:程序博客网 时间:2024/05/29 16:34
IO流的三种分类方式
1.按流的方向分为:输入流和输出流 2.按流的数据单位不同分为:字节流和字符流 3.按流的功能不同分为:节点流和处理流
IO流的抽象类:
字符流:Reader Writer
字节流:InputStream(读数据) OutputStream(写数据)
缓冲流:缓冲流要套接在相应的节点流之上,提高了读写的效率。此处理流的构造方法都得传相对应的基类类型
BufferedReader:提供了readLine方法用于高校读取一行字符串 BufferedWriter:提供了newLine用于写入一个行分隔符也就是换行 BufferedInputStream 没多大用处 BufferedOutputStream 没多大用处
转换流:主要作用将字节流转换成字符流。用处较大!
转换流在构造时可以指定其编码集合 InputStreamReader需要和InputStream套接 OutputStreamWriter需要和OutputStream套接
例:OutputStreamWriter osw = new OutputStreamWriter (new FileOutputStream(文件路径);
方法例:osw.getEncoding(); 获得流的编码方式
数据流与字节数组流:
数据流主要为实现可以存取Java原始数据类型如long,boolean 数据流是字节流
DataInputStream需要和InputStream套接 DataOutputStream需要和OutputStream套接
DataInputStream方法:readBoolean() readInt() read……()…… readUTF():网络传输常用方法 读一个Unicode字符串 DataOutputStream方法与 DataInputStream基本对应为写的方法 //此构造函数等于已可以往一个字节数组里输入内容
ByteArrayOutputStream baos = new ByteArrayOutputStream (); //此方法为获取一个字节数组方法返回字节数组 baos.toByteArray();
//此方法获取字节数组占了多少字节
new ByteArrayInputStream(一个字节数组)。available() ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
try {
dos.writeDouble(Math.random());
dos.writeBoolean(true);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
System.out.println(bais.available());
DataInputStream dis = new DataInputStream(bais);
System.out.println(dis.readDouble());
System.out.println(dis.readBoolean());
dos.close(); dis.close();
} catch (IOException e) { e.printStackTrace(); }
Print流
Print流只有输出流无输入流,PrintWriter和PrintStream分别针对字符字节 两个类提供了重载的Print和Println方法用于多种数据类型的输出 PrintWriter和PrintStream的输出操作不会抛出异常 PrintWriter和PrintStream有自动flush功能
----System.setOut(接收OutputStream类):用于设置系统默认输出流
Object流
等同于c#序列化,用直接将Object写入或读出 transient关键字为不序列化此成员变量 需要序列化的类必须实现Serializable接口
主要方法:writeObject(Object); readObject(); 读出为Object类型需要强转数据类型
import java.io.*;
public class TestObjectIO {public static void main(String args[]) throws Exception {
T t = new T(); t.k = 8;
FileOutputStream fos = new FileOutputStream("d:/share/java/io/testobjectio.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(t);
oos.flush();
oos.close();
FileInputStream fis = new FileInputStream("d:/share/java/io/testobjectio.dat");
ObjectInputStream ois = new ObjectInputStream(fis);
T tReaded = (T)ois.readObject();
System.out.println(tReaded.i + " " + tReaded.j + " " + tReaded.d + " " + tReaded.k); } }class T
implements Serializable 23 {
int i = 10; int j = 9;
double d = 2.3;
transient int k = 15; }
- io基础总结
- 【Java基础】IO总结
- Java IO 基础总结(一)
- java基础IO流总结
- Java基础总结---IO流
- java IO基础 学习总结
- 基础学习总结之IO流
- 黑马程序员-Java基础-IO总结
- 基础加强____【IO流个人总结】
- 黑马程序员---Java基础总结--IO流
- java基础——IO总结
- 黑马程序员-java基础-IO流总结
- 黑马程序员_Java基础:IO流总结
- Java基础学习总结---------IO概述(1)
- 黑马程序员---java基础---IO流总结
- Java基础之IO流学习总结
- Java基础-20总结,递归,IO流
- Java基础学习之io流总结
- oracle服务器和客户端字符集的查看和修改
- Android Wear开发者预览版入门
- LCD驱动(FrameBuffer)实例开发讲解
- 面试笔记2(字符串)
- 纽约新gre机考作文的题目
- io基础总结
- 零基础学sat:SAT备考阶段细化学习方案
- android耗时任务_IntentService
- 面试笔记3(结构体、共用体和枚举)
- 当利用QT的QSqlQuery查询数据库时,需开启isForwardOnly模式
- 面试笔记4(运算符及优先级)
- Ubuntu14.04 SAIO - Swift All In One
- JS之执行环境,作用域详解
- 面试笔记5(C预处理器、作用域、static、cosnt以及内存管理)