Java基础IO流(二)字节流小案例
JAVA基础IO流(一)https://www.cnblogs.com/deepSleeping/p/9693601.html
①读取指定文件内容,按照16进制输出到控制台
其中,Integer.toHexString(int i);是将整数i转换成16进制字符串
/*** 读取指定文件内容,按照16进制输出到控制台* 并且每输出10个byte换行* @param fileName*/public static void printHex(String fileName) throws IOException{InputStream is = new FileInputStream(fileName);int len,count=1;while((len=is.read()) != -1){//单位数前面补零if (len <= 0xf) {System.out.print("0");}System.out.print(Integer.toHexString(len) + " ");if (count++%10 == 0) {System.out.println();}} in.close();}
②读取指定文件内容到字节数组中,并且按照16进制输出到控制台
两种方式:第一种是读取到一个字节数组中,第二种是读取到多个字节数组中
注意:第二种方式中,位与 0xff的原因是:byte类型8位,int类型32位,为了避免数据转换错误,通过&0xff将高24位清零。
/*** 读取指定文件内容到字节数组中,并且按照16进制输出到控制台*/public static void printHexByByteArray(String fileName) throws IOException{InputStream is = new FileInputStream(fileName);byte[] buf = new byte[20 * 1024];/** 从in中批量读取字节,放入到buf这个字节数组中* 从第0个位置开始放,最多放buf.length个* 返回的是读到的字节的个数*/int bytes = is.read(buf,0,buf.length);//一次性读完,说明字节数组足够大int count = 1;for (int i = 0; i < bytes; i++) {if (buf[i] <= 0xf) {System.out.print("0");}System.out.print(Integer.toHexString(buf[i]) + " ");if (count++ % 10 == 0) {System.out.println();}}}
/*** 读取指定文件内容到字节数组中,并且按照16进制输出到控制台*/public static void printHexByByteArray1(String fileName) throws IOException{InputStream is = new FileInputStream(fileName);byte[] buf = new byte[20 * 1024];int bytes = 0;int count = 1;while((bytes = is.read(buf, 0, buf.length)) != -1){for (int i = 0; i < bytes; i++) {System.out.print(Integer.toHexString(buf[i] & 0xff) + " ");if (count++ % 10 == 0) {System.out.println();}}}}
③拷贝文件
/*** 文件拷贝*/public static void copyFile(File srcFile,File destFile) throws IOException{if (!srcFile.exists()) {throw new IllegalArgumentException("文件:" + srcFile + "不存在");}InputStream in = new FileInputStream(srcFile);OutputStream out = new FileOutputStream(destFile);byte[] buf = new byte[8 * 1024];int b;while((b = in.read(buf, 0, buf.length)) != -1){out.write(buf, 0, b);out.flush(); //最好加上 }in.close();out.close();}
④DataOutputStream的运用
(转)DataInput out Stream
/*** DataOutputStreamTest*/public static void demo(String fileName) throws IOException{DataOutputStream dos = new DataOutputStream(new FileOutputStream(fileName));dos.writeInt(10);dos.writeInt(-10);dos.writeLong(10l);dos.writeDouble(10.5);//采用UTF-8编码写出dos.writeUTF("中国");//采用utf-16be编码写出dos.writeChars("中国");dos.close();}
转载于:https://www.cnblogs.com/deepSleeping/p/9985854.html
Java基础IO流(二)字节流小案例相关推荐
- # Java基础——IO流
Java基础--IO流 File类的使用(熟悉构造器和方法的使用) File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹) File类的声明在java.io包下 文件和文件目录路径的抽象表示 ...
- Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...
- Java基础IO流之字符流的使用
☆引言☆ 大家好,我是痛而不言笑而不语的浅伤.IO流分为字节流和字符流,而上一篇文章我们学习了字节流(Java基础IO流之字符流的使用),这篇文章带大家一起来学习字符流吧.对文章中描述错误的希望大家积 ...
- java基础 io流 字节流 字符流 节点流 包装流 转换流 缓冲流 对象流 打印流 Properties类
目录 1.概念 2.常用的文件操作 2.1 创建文件 2.2 获取文件相关信息 2.3 目录的操作和文件删除 3. IO流原理及流的分类 3.1 流的分类 4.InputStream 字节输入流 4. ...
- 二十、Java基础--------IO流之其他对象
在上面两篇文章中介绍了IO体系并详细介绍了字节流以及字符流,本文主要是讲述操作文件的File.转化流.标准输入与输出.Properties.打印流以及序列流. File File英文为"文件 ...
- Java基础—IO流
第一讲 IO概述 1. 流的概念 IO流即InputOutput的缩写,在Java中IO流用来处理设备之间的数据传输,Java对数据的操作是通过IO流的方式, 我们可以把IO流抽象的当作一根管道, ...
- JAVA基础 IO流技术学习笔记
目录 一.IO 流技术介绍 1.1 什么是IO? 1.2 流的概念 1.3 数据源 1.3.1 什么是数据源? 1.3.2数据源的分类 二.第一个简单的IO流程序 三.IO流经典写法(适用于任何 ...
- 黑马程序员-JAVA基础-IO流之字符流和字符流缓冲区
------- android培训.java培训.期待与您交流!------- Java 的IO 流 是实现输入和输出的基础,Java 中把不同的输入.输出源抽象表述为"流" (S ...
- Java基础IO流概述、字符流、字节流、流操作规律、File类、Properties类、打印流、序列流
IO流:(Input Output)流 字符流的由来:其实就是字节流读取文字字节数据后,不直接操作而是先查指定的码表,获取对应的文字进行操作 简单说:字符流 = 字节流 + 编码表 字节流的两个顶层父 ...
最新文章
- R语言ggplot2可视化分面图(facet,facet_wrap): 不同分面配置不同的数据范围、自定义每个分面的轴数据格式化形式及数据范围
- 这个勒索软件也太菜了!
- SpringBoot 集成 Nacos
- Chapter2-1_Voice Conversion(Feature Disentangle)
- iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
- 线性代数向量乘法_标量乘法属性1 | 使用Python的线性代数
- 【Python-GPU】GPU数据科学加速包——RAPIDS
- HR问我为什么要离开上一家公司钱没给到位,心委屈了。这些归根到底就一条:干得不爽。
- java遇到无穷大抛异常_Java中一个for语句导致无穷大死循环的例子
- Ubuntu安装ASIO开发库
- 07.用户控件弹窗提示后页面显示不正常;
- 详解CAN总线:常用CAN连接器的使用方法
- 6那智机器人各轴旋转方向
- SCI期刊分区-JCR分区 中科院分区
- 2021年机修钳工(中级)报名考试及机修钳工(中级)考试资料
- 淘宝双十一自动做任务方案
- 台式计算机拆卸步骤,拆卸和组装台式计算机主机的说明步骤
- Effective Modern C++笔记汇总
- [windows系统上运行spark报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries
- Recovering High Dynamic Range Radiance Maps from Photographs