Java流 学习笔记
来源:互联网 发布:linux中oracle启动监听 编辑:程序博客网 时间:2024/05/17 01:57
java.io 包里定义了多个流类型。
所有流类型都继承自以下四种抽象流类型。
UTF-16 一个字符两个字节。
/****************
节点流与处理流的区别
常见节点流
分别是文件,内存中的数组,一个String,线程和线程通信的Pipe
继承自InputStream 的流类
InputStream 基本方法
int read( ); // 读取一个字节并以整数返回(0~255),到输入流末尾返回-1
int read( byte[ ] buffer) throws IOException ;
// 读取buffer长度的数据,装进缓冲区 buffer
// 返回实际读取的字节数,如果读取前已到输入流结尾则返回-1
// read 方法都记录已经读到的位置。
void close( ) throws IOException // 关闭流释放内存资源
System.in 是InputStream的一个子对象,是键盘输入流。
/********************
OutputStream 常用类
OutputStream 内常用方法
close方法不输出缓冲区的数据,直接关闭。
Reader和Writer 和以上方法类似,具体查API文档。java里char 占两字节。
int ch;
xxReader a=new xxReader("docpath");
ch=a.read( );
System.out.println((char)ch);
// 可以这么打印字符。
继承自OutputStream的FileOutputStream
FileOutputStream a=new FileOutputStream("D:/javatest/a.txt"); //当磁盘没有此文件时,新建此文件。
常见处理流 (处理其他节点流的类)
#Buffering是缓冲流
“套接”在相应节点流上,一次读很多,防止频繁小规模读写效率低,损害硬盘。
可以在缓冲区中标记位置,可以用mark,reset 等。
#转换流
Concerting between bytes and character
InputStreamReader i= new InputStreamReader(System.in); //先包装成字符读取,这里调用的就是转换流。
BufferedReader b=new BufferedReader( i ); // 把转化流再包装成缓冲流。
#数据流
可直接从中读取int double等类型。
Example:
这里的ByteArrayOutputStream是节点流,写入一个byte[ ] ,然后通过 .toByteArray( ); 获得byte数组。
DataOutputStream 是这里讲的数据类型的包装流。
#print流
如图设置处理流,可以调用System.setOut( ); 设置系统输出的位置,默认为命令行输出,这里向NewOut文件输出。
System.out 是PrintStream类型。
#Object流 -- 处理流
接口 Serializable , 类实现这个接口才能被转化为字节流。
这个接口为标记性接口,不需要重写方法。
writeObject( );
readObject( ); // 这两个方法读写一个对象。
Externalizable 接口,继承自Serializable接口,重写两个方法,自己控制对象的序列化过程。
transient 关键字。 修饰成员变量: transient int k = 15;
被transient修饰的变量在序列化时不予考虑,即当做没有。
- Java流 学习笔记
- Java学习笔记---IO流笔记
- java学习笔记7 流
- java学习笔记 管道流
- java学习笔记--IO流
- Java IO流学习笔记
- Java学习笔记-网络流
- java IO流学习笔记
- java学习笔记-输入输出流
- java学习笔记-文件流
- Java IO流 学习笔记
- java学习笔记-IO流
- Java学习笔记-流操作
- Java学习笔记:IO流
- Java学习笔记-IO流
- JAVA输入输出流学习笔记
- Java IO流学习笔记
- Java学习笔记 IO流
- Gamma压缩与解压
- 【LeetCode】258.Add Digits
- Windows下安装设置Atlassian-Confluence-5.1.4并破解汉化(另附图解)
- 【Codeforces Beta Round 2A】【模拟 map 有map的java实现哦】Winner 第一个达到最终最高分的人名
- 我的JavaScript设计模式
- Java流 学习笔记
- kdiff3工具
- 编译和运行
- 说说 Wine + QQ 轻聊版 7.7 的安装步骤
- 深入理解Linux修改hostname
- 【手把手教你Maven】构建过程
- Nginx编译参数大全 configure参数中文详解
- Tizen web app开发示例(将2048移植到Tizen平台上)
- vs2015编译tcmalloc(gperftools2.4)