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 ...
随机推荐
- TLS1.3的简单学习
TLS1.3的简单学习 TLS的历史 From GTP3.5 TLS(传输层安全)是一种加密协议,旨在确保 Internet 通信的安全性和隐私保护.下面是 TLS 的历史概述: SSL(安全套接层) ...
- [转帖]七. PostgreSQL逻辑结构(1)—数据库和模式
https://www.jianshu.com/p/ee8b1bdfdb19 在PostgreSQL里,逻辑结构从高到底依次是:数据库.模式(又叫架构).表.行.当我们打开PostgreSQL官方自带 ...
- [转帖]如何对minio进行性能测试和分析
https://developer.aliyun.com/article/1006775 环境详情 server(组成集群,ec为12:4) ip hosts 硬盘 storage01 172.1 ...
- [转帖]ioping测试
https://www.cnblogs.com/ishmaelwanglin/p/10839702.html 一个实时显示磁盘io延时的工具,以类似ping 的输出一样展示输出结果 常用参数: -c ...
- echarts饼图中央自定义文字
var option = { tooltip: { trigger: 'item' }, legend: { top: '5%', left: 'center' }, //中央自定义文字 title: ...
- vue报错:'XX' is defined but never used no-unused-vars
参考地址:http://www.gold404.cn/info/87 导致这个报错的原因就是eslint校验, 就是你当初在vue创建脚手架的时候选择了eslint校验: 后面你绝对会碰到这样的报错, ...
- 【JS 逆向百例】网洛者反爬练习平台第五题:控制台反调试
关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...
- ABP Vnext 微服务 常见问题
1.token问题 原因:拿token和认证token的服务器不一致 2.minio访问报错 minio错误 S3 API Request made to Console port. S3 R 解决方 ...
- 提高Android Studio的编译速度(更快出包减少等待)
硬件和软件的准备 对于经常要出包而且一次要出多个渠道APK的同事来说,每次漫长的打包等待是一件消耗生命且无意义事情. google官方提高编译速度的文档:https://developer.andro ...
- c++基础之表达式
这次接着更新<c++ primer> 这本书的读书笔记,上一篇博文更新到了书中的第三章,本次将记录书中的第四章--表达式 左值与右值 在理解表达式之前需要先理解c++中左值和右值的概念. ...