Java I/O 教程(七) DataOutputStream和DataInputStream
Java DataOutputStream Class
Java DataOutputStream class 可以以机器无关方式往指定输出流写入Java原始数据类型,例如int, double, long等。
类定义
public class DataOutputStream extends FilterOutputStream implements DataOutput  构造函数
DataOutputStream(OutputStream out)创建一个新的数据输出流往底层输出流写数据
常用函数
int size()                                    返回写入数据输出流字节数
 void write(int b)                            写入指定字节
 void write(byte[] b, int off, int len)         每次写入len长度字节
 void writeBoolean(boolean v)                写入boolean,占1个字节
 void writeChar(int v)                        写入char,占2个字节
 void writeChars(String s)                    以字符序列方式写入字符串
 void writeByte(int v)                        写字节
 void writeBytes(String s)                    以字节序列方式写入字符串
 void writeInt(int v)                        写入int
 void writeShort(int v)                        写入short
 void writeLong(long v)                        写入long
 void writeUTF(String str)                    以UTF8格式往输出流写入字符串
 void flush()                                冲刷数据输出流
例子
package com.dylan.io;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
 * @author xusucheng
 * @create 2018-01-06
 **/
public class DataOutputStreamDemo {
    public static void main(String[] args) throws IOException{
        OutputStream fos = new FileOutputStream("D:\\testout.txt");
        DataOutputStream dos = new DataOutputStream(fos);
        dos.writeInt(65);
        dos.writeUTF("Java is great!");
        dos.flush();
        dos.close();
        System.out.println("写入成功!");
    }
}
Java DataInputStream Class
Java DataInputStream class 允许应用程序以机器无关方式从指定输入流读取java原始数据
类定义
public class DataInputStream extends FilterInputStream implements DataInput  构造函数
DataInputStream(InputStream in)使用指定的输入流创建一个数据输入流
常用方法
int read(byte[] b)                            读取字节
 int read(byte[] b, int off, int len)        每次读取len长度字节
 int readInt()                                读取int
 byte readByte()                                读取一个字节
 char readChar()                                读取2个字节
 double readDouble()                            读取8字节,返回一double类型值
 boolean readBoolean()                        读取一个字节,如果非0返回true,否则返回false
 int skipBytes(int x)                        跳过x个字节
 String readUTF()                            以UTF8格式读取一个字符串
 void readFully(byte[] b)                    从输入流读取字节并存在缓冲数组中 
 void readFully(byte[] b, int off, int len)    从输入流读取len字节
例子
package com.dylan.io;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
/**
 * @author xusucheng
 * @create 2018-01-06
 **/
public class DataInputStreamDemo {
    public static void main(String[] args) throws IOException{
        InputStream is = new FileInputStream("D:\\testout.txt");
        DataInputStream dis = new DataInputStream(is);
        int count = dis.available();
        byte[] bytes = new byte[count];
        dis.read(bytes);
        for(byte b:bytes){
            char c = (char)b;
            System.out.print(c);
        }
        dis.close();
    }
}
下一章
Java I/O 教程(八) Writer和Reader
Java I/O 教程(七) DataOutputStream和DataInputStream的更多相关文章
- 转:Java NIO系列教程(七) Socket Channel
		Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道.可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器. ... 
- Java NIO系列教程(七) selector原理 Epoll版的Selector
		目录: Reactor(反应堆)和Proactor(前摄器) <I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor> <[转]第8章 前摄器(Proa ... 
- Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
		Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ... 
- Java IO操作——数据操作流DataOutputStream和DataInputStream的使用
		学习目标 掌握DataOutputStream和DataInputStream的作用 可以使用DataOutputStream和DataInputStream写入和读入数据 数据操作流 在io包中, ... 
- JAVA IO操作:数据操作流:DataOutputStream和DataInputStream
		掌握DataOutputStream和DataInputStream的作用. 可以使用DataOutputStream和DataInputStream写入和读取数据. 在IO包中提供了两个与平台无关的 ... 
- java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例
		本章介绍DataOutputStream.我们先对DataOutputStream有个大致认识,然后再深入学习它的源码,最后通过示例加深对它的了解. 转载请注明出处:http://www.cnblog ... 
- 20175314 《Java程序设计》第七周学习总结
		20175314 <Java程序设计>第七周学习总结 教材学习内容总结 第八章:常用实用类 String()类代表字符串:Java 程序中的所有字符串字面值(如 "abc&quo ... 
- 20175126《Java程序设计》第七周学习总结
		# 20175126 2016-2017-2 <Java程序设计>第七周学习总结 ## 教材学习内容总结 - 本周学习方式主要为手动敲代码并理解内容学习. - 学习内容为教材第八章,本章主 ... 
- Java NIO系列教程(八)JDK AIO编程
		目录: Reactor(反应堆)和Proactor(前摄器) <I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor> <[转]第8章 前摄器(Proa ... 
- 20165235 祁瑛 2018-4 《Java程序设计》第七周学习总结
		20165235 祁瑛 2018-4 <Java程序设计>第七周学习总结 教材学习内容总结 MySQL数据管理系统 MySQL数据管理系统,简称MySQL,是世界上流行的数据管理系统. M ... 
随机推荐
- 44从零开始用Rust编写nginx,命令行参数的设计与解析及说明
			wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代 ... 
- 一种基于linux系统的精准流量统计方法
			 前言: 在linux系统关于流量统计,已经有开源的工具,比如nethogs,nload和iptraf.它们适合我们在PC上直接监控某台设备的流量情况,但并不适合我们应用到自己的程序中去. 如果要在 ... 
- [转帖]通过拓扑 label 进行副本调度
			https://docs.pingcap.com/zh/tidb/stable/schedule-replicas-by-topology-labels#%E5%9F%BA%E4%BA%8E%E6%8 ... 
- [转帖]使用 TiUP 部署 TiDB 集群
			https://docs.pingcap.com/zh/tidb/stable/production-deployment-using-tiup TiUP 是 TiDB 4.0 版本引入的集群运维工具 ... 
- [转帖]Linux | crontab定时任务及开机自启项
			本文总结如何使用 crontab 创建定时任务及开启自启项 1. 本文基于 CentOS 7.9 系统所写. Updated: 2022 / 9 / 5 Linux | crontab定时任务及开机自 ... 
- [转帖]自动化运维:一键自动化脚本-shell
			https://www.cnblogs.com/luoahong/articles/8456203.html shell函数 1.分别在服务器和客户端上创建www用户 1 2 useradd www ... 
- MySQL备份恢复简单处理方法
			客户备份恢复的脚本处理简要如下: 首先登陆mysql服务器 方法如下: mysql -uroot -p 输入密码即可登陆 然后需要创建一个数据库, 个人感觉同名恢复最容易出问题 create data ... 
- vue3动态组件的展示
			需求描述 有些时候,我们需要做这样的处理. 点击A按钮的时候,出现组件A 点击B按钮的时候,出现组件B 点击C按钮的时候,出现组件C 这个时候,我们就可以使用动态组件了 动态组件 <templa ... 
- VictoriaMetrics 1.73.1 值得关注的新特性
			作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu 公众号:一本正经的瞎扯 VictoriaMetrics 1.73.1 的changelog: h ... 
- Unity Editor开发中查找属性的两种写法对比
			从2017开始,在editor脚本中查找属性是这样写的 var m_Script = serializedObject.FindProperty("m_Script"); Seri ... 
