JAVA学习随笔(6)--FileInputStream随笔

2024-04-20 09:58

本文主要是介绍JAVA学习随笔(6)--FileInputStream随笔,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.字节流
1)InputStream抽象了应用程序读取数据的方式
OutputStream抽象应用程序写出数据的方式
2)EOF = End 读到-1就读到结尾
3)输入流基本方法
int b = in.read();//读取一个字节无符号填到int低8位
in.read(byte[] buf);
in.read(byte[] buf,int start,int end);
4)输出流基本方法,和输入流类似
out.write(int b);
out.write(byte[] buff);
out.write(byte[] buf,int start,int size);

package file;import java.io.FileInputStream;
import java.io.IOException;public class IOUtil {               public static void printHex(String fileName) throws IOException{FileInputStream in = new FileInputStream(fileName);int b;int i = 1;while((b = in.read()) != -1){if(b <= 0xf){System.out.print("0" + Integer.toHexString(b) + " ");}else{System.out.print(Integer.toHexString(b) + " ");}if(i++ % 10 == 0){System.out.println();}}in.close();}}
package file;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;public class IOUtil {               public static void printHex(String fileName) throws IOException{FileInputStream in = new FileInputStream(fileName);int b;int i = 1;while((b = in.read()) != -1){if(b <= 0xf){System.out.print("0" + Integer.toHexString(b) + " ");}else{System.out.print(Integer.toHexString(b) + " ");}if(i++ % 10 == 0){System.out.println();}}in.close();}public static void printHexByByteArray(String fileName) throws IOException{FileInputStream in = new FileInputStream(fileName);//最大缓存设20KBbyte[] buf = new byte[20*1024];//返回的是读到的字节数int bytes = in.read(buf,0,buf.length);int flag= 1;for(int i=0;i<bytes;i++){if(buf[i] < 0xf){System.out.print("0" + Integer.toHexString(buf[i]) + " ");}else{System.out.print(Integer.toHexString(buf[i]) + " ");}if(flag++ % 10 == 0){System.out.println();}}in.close();}}

单字节读取不适合读比较大的文件,文件数据量上去后单字节读取方式时间消耗更大。批量读取是最常见的读取文件方式

package file;import java.io.IOException;public class IOUtilTest02 {public static void main(String[] args) throws IOException {// TODO Auto-generated method stublong start = System.currentTimeMillis();IOUtil.printHexByByteArray("e:\\javaio\\111.mp3");long batchEnd = System.currentTimeMillis();IOUtil.printHex("e:\\javaio\\111.mp3");long aloneEnd = System.currentTimeMillis();System.out.println("单独读取耗时:" + (aloneEnd - batchEnd));System.out.println("批量读取耗时:" + (batchEnd - start));}}

这里写图片描述

5)FileOutputStream–实现向文件中写出byte数据的方法

public class FileOutDemo1{public static void main(String[] args) throws IOException {//如果文件不存在,则直接创建,如果存在则删除后创建FileOutputStream out = new FileOutputStream("e://javaio//out.txt");out.write('A');//写出'A'的低8位int a = 10;out.write(a >>> 24);out.write(a >>> 16);out.write(a >>> 8);out.write(a);byte[] buf = "张小红".getBytes("gbk");out.write(buf);out.close();}
}

这篇关于JAVA学习随笔(6)--FileInputStream随笔的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/919945

相关文章

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

Java easyExcel实现导入多sheet的Excel

《JavaeasyExcel实现导入多sheet的Excel》这篇文章主要为大家详细介绍了如何使用JavaeasyExcel实现导入多sheet的Excel,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录1.官网2.Excel样式3.代码1.官网easyExcel官网2.Excel样式3.代码

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试