Java IO ---学习笔记(数据流)
2017-09-15 22:25
309 查看
数据流:
接口 DataInput 和 DataOutput,设计了一种较为高级的数据输入输出方式:除了可处理字节和字节数组外,还可以处理 int、float、boolean等基本数据类型,这些数据在文件中的表示方式和它们在内存中的一样,无须转换,如 read(), readInt(), readByte()...; write(), writeChar(), writeBoolean()...此外,还可以用 readLine()方法读取一行信息。
方法:
数据流类 DateInputStream 和 DataOutputStream 的处理对象除了是字节或字节数组外,还可以实现对文件的不同数据类型的读写:
分别实现了 DataInput 和 DataOutput 接口
在提供字节流的读写手段同时,以统一的形式向输入流中写入 boolean,int,long,double 等基本数据类型,并可以再次把基本数据类型的值读取回来。
提供了字符串读写的手段
数据流可以连接一个已经建立好的数据对象,例如网络连接、文件等。数据流可以通过如下方式建立:
接下来我们通过具体的代码,看一看它的用法吧:
接口 DataInput 和 DataOutput,设计了一种较为高级的数据输入输出方式:除了可处理字节和字节数组外,还可以处理 int、float、boolean等基本数据类型,这些数据在文件中的表示方式和它们在内存中的一样,无须转换,如 read(), readInt(), readByte()...; write(), writeChar(), writeBoolean()...此外,还可以用 readLine()方法读取一行信息。
方法:
方法 | 返回值 | 说明 |
---|---|---|
readBoolean() | boolean | |
readByte() | byte | |
readShort() | short | |
readChar() | char | |
readInt() | int | |
readLong() | long | |
readDouble() | double | |
readFloat() | float | |
readUnsignedByte() | int | |
readUnsignedShort() | int | |
readFully(byte[] b) | void | 读满字节数组,不同于 InputStream。read |
reaFully(byte[] b, int off,int len) | void | 读满指定长度,不同于 InputStream.read |
skipBytes(int n) | int | 与 InputStream.skip 等价 |
readUTF() | String | 安装 UTF-8 形式从输入中读取字符串 |
readLine() | String | 按回车(\r)换行(\n)为分割符读取一行字符串,不完全支持 UNICODE |
writeBoolean(boolean v) | void | |
writeByte(int v) | void | |
writeShort(int v) | void | |
writeChar(int v) | void | |
writeInt(int v) | void | |
writeLong(long v) | void | |
writeFloat(float v) | void | |
writeDouble(double v) | void | |
write(byte[] b) | void | 与 OutputStream.write 同义 |
write(byte[] b, int off, int len) | void | 与OutputStream.write 同义 |
write(int b) | void | 与OutputStream.write 同义 |
writeBytes(String s) | void | 只输出每个字符的低8位;不完全支持 UNICODE |
writeChars(String s) | void | 每个字符在输出中都占两个字节 |
分别实现了 DataInput 和 DataOutput 接口
在提供字节流的读写手段同时,以统一的形式向输入流中写入 boolean,int,long,double 等基本数据类型,并可以再次把基本数据类型的值读取回来。
提供了字符串读写的手段
数据流可以连接一个已经建立好的数据对象,例如网络连接、文件等。数据流可以通过如下方式建立:
FileInputStream fis = new FileInputStream("file1.txt"); FileOutputStream fos = new FileOutputStream("file2.txt"); DataInputStream dis = new DataInputStream(fis); DataOutputStream dos = new DataOutputStream(fos);
接下来我们通过具体的代码,看一看它的用法吧:
import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class DataStream { public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub //向文件 a.txt 写入 FileOutputStream fos = new FileOutputStream("a.txt"); DataOutputStream dos = new DataOutputStream(fos); try { dos.writeBoolean(true); dos.writeByte((byte)123); dos.writeChar('J'); dos.writeDouble(3.1415926); dos.writeFloat(2.122f); dos.writeInt(123); } finally { dos.close(); } //从文件 a.txt 读出 FileInputStream fis = new FileInputStream("a.txt"); DataInputStream dis = new DataInputStream(fis); try { System.out.println("\t" + dis.readBoolean()); System.out.println("\t" + dis.readByte()); System.out.println("\t" + dis.readChar()); System.out.println("\t" + dis.readDouble()); System.out.println("\t" + dis.readFloat()); System.out.println("\t" + dis.readInt()); } finally { dis.close(); } } }
相关文章推荐
- Java IO 实现文件复制 -Java 学习笔记 (25)
- Java IO学习笔记+代码(1)
- 传智博客学习笔记12--JAVA IO
- java学习笔记IO
- Java.io.File类学习笔记
- Java IO学习笔记:概念原理
- Java IO学习笔记+代码(3)
- Java IO学习笔记:字符流
- JAVA高级视频_IO输入与输出04 学习笔记
- java NIO非阻塞式IO网络编程学习笔记(一)
- JAVA高级视频02_IO输入与输出 06 ByteArrayInputStram和ByteArrayOutputStream 学习笔记
- [零散篇]Java学习笔记---Java的对象序列化以及文件IO处理
- JAVA高级视频02_IO输入与输出 06 PipedInputStream和PipedOutPutStream 学习笔记
- java_croe 学习笔记之新IO---java.nio 之内存映射文件
- javaIO学习笔记
- JAVA高级视频_IO输入与输出01 学习笔记
- Java IO学习笔记+代码(2)
- Java IO学习笔记:概念原理
- Java IO学习笔记+代码(1)
- Java IO学习笔记