字节流 Datainputstream

import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class StremDemo4 {
public static void main(String[] args) {
//write();
read();
}

public static void write() {
try {
// 把1.txt文件作为字节输出流,并且直接可以写java的数据类型
/*
* DataOutputStream dos = new DataOutputStream( new
* FileOutputStream("d:\\1.txt"));
*/
// 把1.txt文件作为字节输出流,并且先写入缓冲区,并且可以直接写java的数据类型
/*
* DataOutputStream dos1 = new DataOutputStream( new
* BufferedOutputStream( new FileOutputStream("d:\\1.txt")));
*/

// 发现特殊功能的流类都是有基本的流流,嵌套构造而来,其实是装饰模式
DataOutputStream dos = new DataOutputStream(new FileOutputStream(
"D:\\javalessons\\coreJava\\javaSE-core\\data.txt"));
/*
* 如果是FileOutputStream out
* out.write(10000); write方法只能写一个字节
* 但是10000 是32个字节,所以它只会写后8位
* DataOutputStream dos对象的writeInt
* 方法一定是利用out对象的write方法写4次每次写8位
* writeInt内部一定是
* out.write(10000>>24)
* out.write(10000>>16)
* out.write(10000>>8)
* out.write(10000)
*/
dos.writeInt(1000);
dos.writeBoolean(true);
dos.writeDouble(10.03);
dos.writeUTF("helloworld");
dos.close();
} catch (Exception e) {
e.printStackTrace();
}
}

public static void read() {
try {
DataInputStream dis = new DataInputStream(new
FileInputStream("D:\\javalessons\\coreJava\\javaSE-core\\data.txt"));
/*
* readInt方法是用
* InputStream 的read读4次然后拼接
* 看源码
*/
System.out.println(dis.readInt());
System.out.println(dis.readBoolean());
System.out.println(dis.readDouble());
System.out.println(dis.readUTF());
} catch (Exception e) {
e.printStackTrace();
}
}

}

时间: 2024-08-26 23:17:41

字节流 Datainputstream的相关文章

深入理解JAVA I/O系列二:字节流详解

流的概念 JAVA程序通过流来完成输入/输出.流是生产或消费信息的抽象,流通过JAVA的输入输出与物理设备链接,尽管与它们链接的物理设备不尽相同,所有流的行为具有相同的方式.这样就意味一个输入流能够抽象多种不同类型的输入:从磁盘文件.从键盘或从网络套接字:同样,一个输出流可以输出到控制台.磁盘文件或相连的网络. 在我们平时接触的输入/输出流中,有这样一个概念必须要弄明白,何谓输入.何谓输出?讨论这个问题的前提是要知道以什么为参考物,这个参考物就是程序或者内存.输入:就是从磁盘文件或者网络等外部的

Java—IO流 字节流

IO流(输入流.输出流),又分为字节流.字符流. 流是磁盘或其它外围设备中存储的数据的源点或终点. 输入流:程序从输入流读取数据源.数据源包括外界(键盘.文件.网络-),即是将数据源读入到程序的通信通道. 输出流:程序向输出流写入数据.将程序中的数据输出到外界(显示器.打印机.文件.网络-)的通信通道. 字节流 1.InputStream.OutputStream InputStream抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据的方式 2.读到文件结尾,称为EO

再论流之字节流和字符流

Java定义了两种类型的流:字节流和字符流.字节流为处理字节的输入和输出提供了方法.例如,当读取和写入二进制数据时,使用的就是字节流.字符流为处理字符的输入和输出提供了方便的方法.它们使用Unicode编码,所以可以被国际化.另外一点:在最底层,所有I/O仍然是面向字节的.基于字符的流只是为处理字符提供了一种方便和高效的方法. 字节流类 字节流是通过两个类层次定义的.在顶级是两个抽象类:InputStream和OutputStream.每个抽象类都有几个处理各种不同设备的具体子类. 流类    

JAVA IO 字节流与字符流

文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节.       IO框架 从上图我们可以看出IO可以分为两大块 字节流和字符流 字节流是 InputStream 和 OutputStream 分别对应输入与输出 字符流是Reader和Writer分别对应输入与输出        ByteArrayInputStream  它字节数组输入流.继承于InputS

IO(字节流)

1. 字节流类以InputStream 和 OutputStream为顶层类,他们都是抽象类(abstract) 2. 最重要的两种方法是read()和write(),它们分别对数据的字节进行读写.两种方法都在InputStream 和OutputStream中被定义为抽象方法.它们被派生的流类重写. 3. 过滤流的主要特点是在输入输出数据的同时能对所传输的数据做指定类型或格式的转换,即可实现对二进制字节数据的理解和编码转换. 4. 过滤流在读/写数据的同时可以对数据进行处理,它提供了同步机制,

DataOutputStream and DataInputStream

        DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("a.txt")));         dos.writeInt(5);         dos.writeBoolean(true);         dos.flush();         dos.close();         DataInputStream dis = new Da

Java核心知识点-字节流和字符流详解

字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 区别:实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示. 下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流. 范例:使用字节流不关闭执行 Java代码   package org.lxh.demo12.byteiodemo; import java.io.File; import 

Java IO之DataInputStream,ObjectInputStream,ByteArrayInputStream等

一.节点流 1.字节数组 字节 节点流 输入流 ByteArrayInputStream read(byte[] b, int off, int len)+close() 输出流 ByteArrayOutputStream write(byte[] b, int off, int len)+ toByteArray() 这是个新增方法,不要使用多态 package IOOthers; import java.io.BufferedInputStream; import java.io.ByteA

OpenJDK 源码阅读之 Java 字节流输入类的实现

Java 的输入输出总是给人一种很混乱的感觉,要想把这个问题搞清楚,必须对各种与输入输出相关的类之间的关系有所了解.只有你了解了他们之间的关系,知道设计这个类的目的是什么,才能更从容的使用他们. 我们先对 Java I/O 的总体结构进行一个总结,再通过分析源代码,给出把每个类的关键功能是如何实现的. Java I/O 的主要结构 Java 的输入输出,主要分为以下几个部分: 字节流 字符流 Socket 新 I/O 每个部分,都包含了输入和输出两部分. 实现概要 这里只给出每个类的实现概要,具