数据流: DataInputStream 和 DataOutputStream
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据流: DataInputStream 和 DataOutputStream相关的知识,希望对你有一定的参考价值。
/*
* 1、数据流: DataInputStream 和 DataOutputStream 一对。
* 1) DataInputStream 数据的字节输入流; DataOutputStream 数据的字节输出流。
* 2) 功能: 实现八种基本类型数据的输入/输出。 同时,也可实现字符串的输入/输出。
* 3) 特点: 八种基本类型的数据在输入/输出时,会保持类型不变。
* 因此,这种流特别适合在网络上实现基本类型数据和字符串的传递。
*
* 4) 方法:
* readByte() writeByte()
* readShort() writeShort();
* readInt() writeInt();
* readLong() writeLong();
* readFloat() writeFloat();
* readDouble() writeDouble();
* readBoolean() writeBoolean();
* readChar() writeChar();
*
* readUTF(); writeUTF();
*
* 5) 数据流属于处理流,它必须套接在节点流。
*
* 6) 注意: 数据流在读取与存储时的顺序要一致。否则,读取数据会失真。
*/
public static void main(String[] args) { byte b1 = 127; short s1 = 32767; int i1 = 2147483647; long l1 = 9876543210L; float f1 = 31.78f; double d1 = 3.1415926; char ch = ‘A‘; boolean flag = true; String str = "Hello"; String path = "d:/datas.dat"; //2 声明 DataOutputStream dos = null; DataInputStream dis = null; //3创建 try { dos = new DataOutputStream( new FileOutputStream( path) ); dis = new DataInputStream( new FileInputStream( path ) ); //4 存盘 dos.writeByte( b1 ); dos.writeShort( s1 ); dos.writeInt( i1 ); dos.writeLong( l1 ); dos.writeFloat( f1 ); dos.writeDouble( d1 ); dos.writeChar( ch ); dos.writeBoolean( flag ); dos.writeUTF( str ); //5 确保输出成功 dos.flush(); System.out.println("已将八种基本类型的数据及字符串存盘到 " + path + "文件中了。"); //6从文件中读取八种基本类型的数据及字符串 b1 = dis.readByte(); s1 = dis.readShort(); i1 = dis.readInt(); l1 = dis.readLong(); f1 = dis.readFloat(); d1 = dis.readDouble(); ch = dis.readChar(); flag = dis.readBoolean(); // str = dis.readUTF(); System.out.println("\\n从 " + path + " 文件中读取八种基本类型数据及字符串如下:"); System.out.println("b1 = " + b1 ); System.out.println("s1 = " + s1 ); System.out.println("i1 = " + i1 ); System.out.println("l1 = " + l1 ); System.out.println("f1 = " + f1 ); System.out.println("d1 = " + d1 ); System.out.println("ch = " + ch ); System.out.println("flag = " + flag ); // System.out.println("str = " + str ); //7 处理(如:显示) long x = b1 * 1L + s1 + i1 ; System.out.println( "x = " + x ); } catch (FileNotFoundException e) { System.out.println("文件找不到: " + e.getMessage() ); } catch (IOException e) { e.printStackTrace(); } finally { try { if( dos != null ) dos.close(); } catch (IOException e) { } try { dis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
以上是关于数据流: DataInputStream 和 DataOutputStream的主要内容,如果未能解决你的问题,请参考以下文章
大数据必学Java基础(七十三):数据流DataInputStream和DataOutputStream介绍
DataOutputStream和DataInputStream
Java IO DataInputStream 和 DataOutputStream
JavaI/O:简单的使用DataOutputStream和DataInputStream操作文件流