Java 读写byte[]类

Java入门第139课——RandomAccessFile的read(byte[])和write(byte[])方法 然后,使用RandomAccessFile类的write(byte[])方法向文件raf.dat中写字符串"HelloWorld"。使用RandomAccessFile类的read(byte[])方法从文件raf.dat读取字符串"HelloWorld"。2)使用RandomAccessFile的read(byte[])方法从文件raf.dat中将字符串"HelloWorld"读取出来并打印到控制台。运行testWriteByteArray方法,将当前工程下的raf.dat文件的大小变为10个字节。 阅读详情
package tools;

import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class FileHelper {
    //第一种获取文件内容方式
    public byte[] readByte(String filePath) throws IOException {
        File file = new File(filePath);
        long fileSize = file.length();
        if (fileSize > Integer.MAX_VALUE) {
            System.out.println("file too big...");
            return null;
        }
        FileInputStream fi = new FileInputStream(file);
        byte[] buffer = new byte[(int) fileSize];
        int offset = 0;
        int numRead = 0;
        while (offset < buffer.length
                && (numRead = fi.read(buffer, offset, buffer.length - offset)) >= 0) {
            offset += numRead;
        }
        // 确保所有数据均被读取
        if (offset != buffer.length) {
            throw new IOException("Could not completely read file "+ file.getName());
        }
        fi.close();
        return buffer;
    }

    //第二种获取文件内容方式
    public byte[] readByte2(String filePath) throws IOException
    {
        FileInputStream in=new FileInputStream(filePath);
        ByteArrayOutputStream out=new ByteArrayOutputStream(1024);
        System.out.println("bytes available:"+in.available());
        byte[] temp=new byte[1024];
        int size=0;
        while((size=in.read(temp))!=-1)
        {
            out.write(temp,0,size);
        }
        in.close();
        byte[] bytes=out.toByteArray();
        System.out.println("bytes size got is:"+bytes.length);
        return bytes;
    }
    //将byte数组写入文件
    public void WriteByteToFile(String path, byte[] content) throws IOException {
        FileOutputStream fos = new FileOutputStream(path);
        fos.write(content);
        fos.close();
    }
    /* 方法1:
     * 将byte数组(追加)写入文件
     *
     * */
    public void AppendByteToFile(String path, byte[] content, boolean Appendable) throws IOException {
//         程序写好之后每次存储数据都刷新
        //FileOutputStream fos = new FileOutputStream(path);
//         研究了一下,原来FileOutPutStream也可以设置模式的,只是和openFileOutput不一样 我这样写FileOutputStream fos=new FileOutputStream(_sdpath1,Appendable);就可以实现数据追加功能
        FileOutputStream fos=new FileOutputStream(path,Appendable);
        fos.write(content);
        fos.write("\r\n".getBytes());
        fos.close();
    }
    /**
     * 方法二:
     * 根据byte数组,生成文件
     */
    public  void AppendByteToFile(byte[] bfile, String filePath,String fileName) {
        BufferedOutputStream bos = null;

        File file = null;
        try {
            File dir = new File(filePath);
            if(!dir.exists()&&dir.isDirectory()){//判断文件目录是否存在
                dir.mkdirs();
            }
            file = new File(filePath+"\\"+fileName);
            /* 使用以下2行代码时,不追加方式*/
            /*bos = new BufferedOutputStream(new FileOutputStream(file));
            bos.write(bfile); */
            /* 使用以下3行代码时,追加方式*/
            bos = new BufferedOutputStream(new FileOutputStream(file, true));
            bos.write(bfile);
            bos.write("\r\n".getBytes());

            bos.flush();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (bos != null) {
                try {
                    bos.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }

        }
    }
}

vuecli3 实现 移动端和pc端 界面切换(两套代码) 适合场景 多页面多系统应用 所有系统都在同一目录下。配置多入口多出口。每个系统之间可以链接。每个系统内依然采用Vue单页应用开发。 产品需求:一套代码 兼容pc端和移动端 , 移动端和pc端的样式布局差别很大,需要使用多界面,并判断使用手机的时候跳转移动端代码,使用pc端跳转pc端代码。 项目目录 分为两部分代码,pc 和mobile 第一步:创建一个登陆页面的文件 在项目public文件夹下创建一个login.html,其实就是将index.html复制一份,将title改一下: <!DOCTYP 阅读详情

相关推荐

LPC546xx USB接口VBUS阈值设计:从原理到实践,解决冷启动与可靠性问题

在嵌入式USB接口设计中,VBUS信号不仅是电源线,更是设备连接检测与电源管理的核心。其电压阈值直接决定了USB物理层(PHY)能否正确识别主机并建立有效会话。理解VBUS的会话有效电压(Votg_sess_valid)与PHY有效电压(VBUS_valid)等关键参数,是确保接口稳定性的基础。这些参数影响着设备枚举的成功率、通信稳定性以及长期可靠性。在工程实践中,尤其是对于集成PHY的微控制器如NPC LPC546xx系列,VBUS的连接方案(直接连接或通过稳压器)需要根据设备供电模式(自供电/总线供电)

weixin_30915275的博客 400

读取Java文件到byte数组的三种方式

【代码】读取Java文件到byte数组的三种方式。

tttzzzqqq2018的博客 4359

ccproxy 6.61 注册机(纯绿/傻瓜/真正去除线程限制)

导读:   软件介绍   1、 CCPROXY 6.61 注册机(纯绿/傻瓜/真正去除线程限制)   ***前言,这次的升级官方改动不大,据说只是为了不被某些软件当病毒***   附件包中解压即免安装版,CcREGTOOLFF.exe为注册机。   本人继续向大家隆重推出《CCPROXY6.61哎呀……破解版》   还是那个提示:   在此之前,本人还是那句老话想提示大家,CCPROXY是

i53nd的专栏 1万+

Java 读取文件到byte数组的三种方式

先上代码 工具类实现: package com.wang.chao.file.demo.read; import java.io.*; import java.nio.ByteBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; public final class FileReaderUtils { /** * 小文件读取,一次buffer缓冲,将全部文件内容读出,若不能一次

最近学习目标:MySQL,Redis 1万+

从稀疏表示到低秩表示(一)

确定研究方向后一直在狂补理论,最近看了一些文章,有了些想法,顺便也总结了representation系列的文章,由于我刚接触,可能会有些不足,愿大家共同指正。 从稀疏表示到低秩表示系列文章包括如下内容: 一、 sparse representation 二、 一、 sparse representation 1  sparsity  一个线性表示解决的问题如下图所示:

彼岸花 3万+

2026年软件测试职业院校技能大赛—ERP管理平台-采购入库模块Bug定位与查找

竞赛对接软件测试相关标准,以“ERP管理平台” 为被测系统,围绕软件测试领域的主流技术及工具,考查选手面 对实际问题的综合分析能力,对测试文档、测试用例的设计能力, 对单元测试、自动化测试、性能测试、接口测试等测试工具及方 法的掌握程度,检验选手团队协作能力、组织规划能力、方法运用能力等。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 195

java获取一个byte字节里的某个bit值或连续的几个bit值

在java里,一个byte占8位 ( bit0-bti7 ),那我们怎么去获取其中的某个bit值或连续的几个bit值呢? 获取单个bit值: //b为传入的字节,i为第几位(范围0-7),如要获取bit0,则i=0 public int getBit(byte b,int i) { int bit = (int)((b>>i) & 0x1); return...

lhp1930的专栏 6537

MyBatis-Plus 实战:敏感字段自动加解密支持模糊查询

本文基于MyBatis-Plus框架提出了一种全链路敏感字段加密方案。通过自定义TypeHandler实现数据入库自动加密和查询自动解密,结合重写LambdaQueryWrapper处理查询条件加密,并适配多种查询方式。方案核心包括:1)AESUtil工具类提供加解密基础能力;2)EncryptTypeHandler实现字段类型转换;3)实体类通过注解配置加密字段。该方案在保证数据安全的同时,对业务代码侵入性小,支持姓名、手机号等敏感信息的全流程加密处理,满足系统开发的安全需求。

蔡定努 596

java fileinputstream.read(byte[])_初学Java,IO流中FileInputStream采用byte[]方式读取

IO流中FileInputStream采用byte[]方式读取。相比单纯使用read()方法读取文件,采用byte[]方式读取占用资源较少,一次读取的量较大,也就是read(byte b[])。声明byte[]时采用静态初始化,这里让他每次读8byte输出时使用String(byte bytes[], int offset, int length)的方式输出,length就是最终read(byte...

weixin_39809584的博客 1369

低功耗设计-ir drop的signoff corner怎么选择?

2.tt的(tt85 是比较接近芯片真实工作情况的);我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?有要求就用要求的就好,没要求前两种看公司需求。3.signoff文档要求的;有几个方向,看公司需求吧。

m0_61544122的博客 1591

14、PostgreSQL日志文件、系统统计与查询优化全解析

本文全面解析了PostgreSQL数据库中的系统统计、日志文件配置与查询优化技巧。详细介绍了如何利用pg_stat_statements模块进行性能监控,配置日志记录以发现潜在问题,并深入探讨了查询优化器的工作原理和优化策略。通过实际案例分析,展示了如何综合应用这些技术提升数据库性能。适合希望提升PostgreSQL性能与稳定性的数据库管理员和开发人员阅读。

efc123456的博客 94

java中的文件操作:读取写入byte[]字节流、string字符串、list列表

java中文件操作:读取文件成字节流,将字节流写入文件,按行读取文件成字符串列表,将字符串列表存储成文件,读取文件成字符串,将字符串写入文件。 主程序测试文件 //测试程序 public static void main(String[] args) { byte[] data=file2byte("test.txt"); //读取文件 ...

jibahaod的博客 1640

第十二段:基于env的重用

现代芯片的验证通常分为两个层次, 一是模块级别( block level, 也称为IP级别、 unit级别) 验证, 二是芯片级别( 也称为SOC级别) 验证。 一个大的芯片在开发时, 是分成多个小的模块来开发的。 每个模块开发一套独立的验证环境, 通常每个模块有 一个专门的验证人员负责。 当在模块级别验证完成后, 需要做整个系统的验证。 假设某个系统分成了三个模块,如下图: 这三个模块在模块级别验证时, 分别有自己的driver和s...

年糕的博客 422

sqlite读写冲突 java_Mybatis在sqlite中无法读写byte[]类问题的解决办法

开发环境: springboot + mybatis plus场景:在DAO的bean中有byte[]类时,写入可以成功,但是读取不行。从错误栈中可以看到原因是:sqlite的driver中,JDBC4ResultSet没有实现以下接口:public Blob getBlob(int col)throws SQLException { throw unused(); }public Blob ge...

weixin_39880895的博客 510

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

字节流 FileInputStream和FileOutputStream类 三种读写方法对比概述

文件操作 FileInputStream和FileOutputStream类 三种read方法对比概述流字节流FileInputStream及FileOutputStream类的构造方法代码测试read()以及write()三个方法各自性能及用法第一次读写代码------read()、write()方法第二次读写代码------read(byte[] b)、write(byte[] b)方法第三...

quique的博客 2873

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

[Java基础]用流进行byte字节流的读写

用流进行byte字节流的读写 import java.io.ByteArrayInputStream; public class StringByteCount { static String str = "This 测试1"; int countStringByte(String str) { int count = 0; ByteArrayInputStream

爱孔孟 3035

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java中byte,String,InputStream之间的转换

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; /** * * @auth...

127

Java -- 保存byte[] 数据

//创建文件,将byte数据直接进行保存 private RandomAccessFile file_test; try { File file = new File("/sdcard/data.yuv"); if (file.exists()) file.delete(); file_test = new RandomAccessFile(file, "rw"); } catch (

Tan 5687

java 打印byte数组内容_java中打印byte数组

JAVA字节转换 字节(Byte)简称:"B",字位(Bit)简称“b“, 1 个字位(Bit)=1 个二进制数, 1 个字节=8 个字位=8 个二进制数, 1 个汉字=2 两个字节=......“Java is Good!; InputStream input = new ByteArrayInputStream(content.getBytes()); int ch; while ((ch =...

weixin_33102135的博客 6264

浅谈java.io包中数据转换类Bits

有人说,若想看看完美优雅的继承和装饰,今天偶然间看到了一个并没有向外提供功能的io工具类Bits,简单分享下学习心得,有错误之处还望道友指出,谢谢 package com.gg; /** * 解析io包中的Bits这个类,可以看出这个类并没有被public修饰,所以只适合同包中的类相互访问,仅仅作为同包中做数据流转、切换 * 此例子来源于java1.8(代码是拷出来的) */ class...

guoguo_guojiang的博客 438

InputStream、byte[]、File相互转换工具类

【代码】InputStream、byte[]、File相互转换工具类。

Mr_Huang_1的博客 776

java中byte,String,InputStream之间的转换(转载)

[code="java"] import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; /** * * @author Andy.Chen * ...

iteye_17867的博客 131

java bit操作_转:一个bit操作的类

因为工作需要,需要操纵和读写一个Java的byte中每一位的值,所以昨天写了这么一个类。不知道有没有更好的方法,拿出来让大家看看吧!源代码:/*** @author 沈东良 Edward Shenshendl_s@hotmail.com* 2007-5-23 下午03:11:45*执行位操作***/public class BitUtil {/*** 把字节指定的位数设为1,不管原来该位是什么。*...

weixin_39983223的博客 357

java byte 保存_Java -- 保存byte[] 数据

//创建文件,将byte数据直接进行保存private RandomAccessFile file_test;try {File file = new File("/sdcard/data.yuv"); //后缀自己定义if (file.exists())file.delete();file_test = new RandomAccessFile(file, "rw"); //可读写} ca...

weixin_42456278的博客 4611

java byte 与操作_关于Java中<字节流>和<字符流>的操作

在程序中所有的数据都是以流的方式进行传输或者保存的,程序需要数据的时候需要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流。可以通过下面的输入输出流关系图表示这种方式。在java.io包中流的操作主要有字节流、字符流两大类,并且两个都具备输入输出的操作。在字节流中输出数据主要使用OutputStream类完成,输入则是InputStream类。在字符流中输出数据主要使用Wr...

weixin_36033417的博客 398

[Java核心API]IO流--随机访问文件RandomAccessFile

1.随机访问文件基础知识package day06file; import java.io.IOException; import java.io.RandomAccessFile; /** * java.io.RandomAccessFile 该类是基于指针形式读取文件数据的 */ public class RandomAccesFileDemo { public static voi

guwuyue的博客 2139
上一篇: AndroidStudio 观察者模式
下一篇: LFilePicker文件选择利器
confusingbird
博客等级 码龄13年 14粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值