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 ...
随机推荐
- [转帖]加速拥抱支持开源生态 | OceanBase 开源版3.1.1正式发布
https://www.oceanbase.com/news/accelerated-embrace-and-support-of-open-source-ecosystem-oceanbase-op ...
- Grafana监控Oracle数据库的表大小等信息
Grafana监控Oracle数据库的表大小等信息 方案 oracledb_exporter 以及 prometheus grafana 使用的SQL以及配置文件 [[metric]] context ...
- Clickhouse的极简安装-之二(macos+linux)
Clickhouse的极简安装-之二(macos+linux) StudyFrom https://clickhouse.com/docs/en/install 然后简单的获取方式: curl htt ...
- [转帖]Linux:crontab要点整理(表达式,转义,权限管理,日志)
https://www.jianshu.com/p/fd46652f247e 摘要:Linux,crontab整理crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志 cron ...
- [转帖]021系统状态检测命令sosreport
https://www.cnblogs.com/anyoneofus/p/16467677.html sosreport命令用于收集系统配置及架构信息并输出诊断文档.
- Docker 镜像减少体积的思路和方法
Docker 镜像减少体积的思路和方法 背景 有一个项目感觉镜像有点大 这边同事喊着一起帮忙处理一下. 今天基本上就在客户现场进行处理了. 想着应该把自己想到的东西整理一下. 整体思路 1. 清理do ...
- [转帖]线上Java 高CPU占用、高内存占用排查思路
一.前言 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题.当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警.本文主要针对系统 ...
- [转帖]RPC 框架架构设计
github地址:https://github.com/xiaojiesir/mini-rpc RPC 又称远程过程调用(Remote Procedure Call),用于解决分布式系统中服务之间的调 ...
- [转帖]技术派-epoll和IOCP之比较
直入正题 Epoll 用于Linux系统: IOCP 是用于 Windows: Epoll 是当事件资源满足时发出可处理通知消息: IOCP 则是当事件完成时发出完成通知消息. 从应用程序的角度来看, ...
- ubuntu18.04 安装wine以及添加mono和gecko打开简单.net应用的方法
1. 今天突然想试试能不能用ubuntu跑一下公司的.net的智能客户端(SmartClient). 想到的办法就是 安装wine 但是过程略坑..这里简单说一下总结之后的过程. 2. 第一步安装wi ...