流之过滤器流(数据流)

DataInputStream和DataOutputStream类提供了一些方法,可以用二进制格式读/写Java的基本数据类型和字符串。所用的二进制格式主要用于在两个不同的Java程序之间交换数据(可能通过网络连接、数据文件、管道或者其他中间介质)。输出流写入什么数据,输入流就能读取什么数据。不过,这碰巧与大多数交换二进制数的Internet协议所用的格式相同。例如,时间协议使用32位big-endian整数,类似于Java的int数据类型。负载受控的网络元素服务使用32位IEEE754浮点数,类似于Java的float数据类型(这是有关联的,而不只是巧合。Java和大多数网络协议都是由UNIX程序员设计的,因此都会倾向于使用大多数UNIX系统中的常见格式)。然而,这并不适用于所有网络协议,所以请检查你使用的协议的具体细节。例如,网络时间协议(NTP)会把时间表示为64位无符号定点数,前32位是整数部分,后32位是小数部分。这与所有常见编程语言中的基本数据类型都不相同,不过处理起来相当简单。

DataOutputStream类提供了下面11种方法,可以写入特定的Java数据类型:

public final void writeBoolean(boolean b) throws IOException
public final void writeByte(int b) throws IOException
public final void writeShort(int s) throws IOException
public final void writeChar(int c) throws IOException
public final void writeInt(int i) throws IOException
public final void writeLong(long l) throws IOException
public final void writeFloat(float f) throws IOException
public final void writeDouble(double d) throws IOException
public final void writeChars(String s) throws IOException
public final void writeBytes(String s) throws IOException
public final void writeUTF(String s) throws IOException

所有数据都以big-endian格式写入。整数用尽可能少的字节写为2的补码。因此,byte会写为1字节,short写为2字节,int写为4字节,long写为8字节。浮点数和双精度数分别写为4字节和8字节的IEEE754格式。布尔数写为1字节,0表示false。

时间: 2024-10-25 17:59:53

流之过滤器流(数据流)的相关文章

流之过滤器流(将过滤器串链在一起)

过滤器通过其构造函数与流连接.例如,下面的代码段将缓冲文件data.txt的输入: InputStream in = new FileInputStream("F:/data.txt"); BufferedInputStream bin = new BufferedInputStream(in); 从文件data.txt中读取文件可能会同时使用 in 和 bin 的read()方法.不过,如果混合调用连接到同一个源的不同流,这可能会违反过滤器流的一些隐含的约定.大多数情况下,应当只使用

流之过滤器流(PrintStream)

PrintStream类是大多数程序员都会遇到的第一个过滤器输出流,因为System.out就是一个PrintStream.不过,还可以使用下面两个构造函数将其他输出流串链到打印流: public PrintStream(OutputStream out) public PrintStream(OutputStream out,boolean autoFlush) 默认情况下,打印流应当显式刷新输出.不过,如果autoFlush参数为true,那么每次写入1字节数组或换行,或者调用println

【幻化万千戏红尘】qianfengDay19-java基础学习:转换流、对象流、打印流、三大标准(重定向)

课程回顾: 流:数据通信的管道常用的流类:1.文件流:File:数据在文件中 1.FileInputStream 2.FileOutputStream 3.FileReader 4.FileWriter2.内存流:ByteArray:数据在内存中(数组) 1.ByteArrayInputStream 2.ByteArrayOutputStream3.缓冲流:Buffered:提高读写效率 1.BufferedInputStream 2.BufferedOutputStream 3.Buffere

Java基础---IO(二)--File类、Properties类、打印流、序列流(合并流)

第一讲     File类 一.概述 1.File类:文件和目录路径名的抽象表现形式 2.特点: 1)用来将文件或文件夹封装成对象 2)方便于对文件与文件夹的属性信息进行操作 3)File类的实例是不可变的:也就是说,一旦创建,File 对象表示的抽象路径名将永不改变 4)File对象可以作为参数传递给流的构造函数 二.File对象创建 方式一: File f =new File("a.txt"); 将a.txt封装成File对象.可以将已有的和未出现的文件或者文件夹封装成对象. 方式

黑马程序员——Java基础——IO流(二)——File类、Properties类、打印流、序列流

第一件 File类 一.File类 a.用于将文件或者文件夹封装成对象 b.方便对文件与文件夹的属性信息进行操作 c.File对象可以作为参数传递给流的构造函数 d.了解File类中的常用方法 二.File对象的创建 a.File f=new File("a:\\a.txt"): b.File f2=new File("C:\\abc","a.txt");//分开的好处是后一个参数能够使用其他对象如string c.File d=new File

JAVA的节点流和处理流

节点流:可以从或向一个特定的地方(节点)读写数据.如FileReader. 处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写.如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数.一个流对象经过其他流的多次包装,称为流的链接. JAVA常用的节点流: 文 件 FileInputStream FileOutputStrean FileReader FileWriter 文件进行处理的节点流. 字符串 StringReader StringWri

黑马程序员——Java基础---IO(三)--File类、Properties类、打印流、序列流(合并流)

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- File类 一.概述 1.File类:文件和目录路径名的抽象表现形式 2.特点: 1)用来将文件或文件夹封装成对象 2)方便于对文件与文件夹的属性信息进行操作,因此是对流操作的一种补充 3)File类的实例是不可变的:也就是说,一旦创建,

IO流与NIO流

(转自CSDN) IO流上:概述.字符流.缓冲区(java基础) 一.IO流概述 概述: IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间的数据传输,Java对于数据的操作都是通过流实现,而java用于操作流的对象都在IO包中. 分类: 按操作数据分为:字节流和字符流. 如:Reader和InpurStream 按流向分:输入流和输出流.如:InputStream和OutputStream IO流常用的基类: * InputStream    ,    OutputSt

Java基础—IO小结(二)缓冲流与其它流的使用

一.缓冲流的使用 每个字节流都有对应的缓冲流: BufferedInputStream / BufferedOutputStream 构造器: 方法摘要与对应节点流类似 使用缓冲流实现文件复制:实际中也是:其中流的关闭只需要关闭缓冲流,内部嵌套的字节流会自动关闭. @Test public void testBuffered1() { // 同样需要先关联文件,注意文本使用Reader Writer,非文本使用fis fos File file1 = new File("D:\\test\\1.