精华内容
下载资源
问答
  • java将一个byte数组保存成图片存在本地
    千次阅读
    2019-07-16 15:21:00

    java将byte数组转换成图片,可以File和IO操作来完成。

    //byte数组到图片到硬盘上
      public void byte2image(byte[] data,String path){
        if(data.length<3||path.equals("")) return;//判断输入的byte是否为空
        try{
        FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));//打开输入流
        imageOutput.write(data, 0, data.length);//将byte写入硬盘
        imageOutput.close();
        System.out.println("Make Picture success,Please find image in " + path);
        } catch(Exception ex) {
          System.out.println("Exception: " + ex);
          ex.printStackTrace();
        }
      }
    

    转载于:https://my.oschina.net/u/4131327/blog/3074807

    更多相关内容
  • 下面小编就为大家带来一篇Java 图片byte数组互相转换实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 下面小编就为大家带来一篇读取Java文件到byte数组的三种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 字符串转byte数组 public static byte[] stringtobyte(String string) { byte[] bytes = string.getBytes(); for (int i = bytes.length - 1; i >= 0; i--) { bytes[i] -= (byte) '0'; } return bytes; } ...

    字符串转byte数组

    public static byte[] stringtobyte(String string) {
            byte[] bytes = string.getBytes();
            for (int i = bytes.length - 1; i >= 0; i--) {
                bytes[i] -= (byte) '0';
            }
            return bytes;
        }
    

    byte数组转Hex字符串

    public static String bytes2HexString(byte[] b, int len) {
            String ret = "";
            for (int i = 0; i < len; i++) {
                String hex = Integer.toHexString(b[ i ] & 0xFF);
                if (hex.length() == 1) {
                    hex = '0' + hex;
                }
                ret += hex.toUpperCase();
            }
            return ret;
        }
    

    合并byte数组

    /**
         * 合并数组
         *
         * @param firstArray  第一个数组
         * @param secondArray 第二个数组
         * @return 合并后的数组
         */
        public static byte[] concat(byte[] firstArray, byte[] secondArray) {
            if (firstArray == null || secondArray == null) {
                if (firstArray != null)
                    return firstArray;
                if (secondArray != null)
                    return secondArray;
                return null;
            }
            byte[] bytes = new byte[firstArray.length + secondArray.length];
            System.arraycopy(firstArray, 0, bytes, 0, firstArray.length);  //是一种本地静态方法,用于将元素从源数组复制到目标数组。
            System.arraycopy(secondArray, 0, bytes, firstArray.length, secondArray.length);
            return bytes;
        }
    
    展开全文
  • Java 读取文件到byte数组的三种方式

    千次阅读 2021-01-26 14:19:53
    import java.io.*; import java.nio.ByteBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; public final class FileReaderUtils { /** * 小文件读取,一次buffer缓冲,将全部...

    先上代码 工具类实现:

    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缓冲,将全部文件内容读出,若不能一次读出则throw IOException,不执行数据读取操作。
         *
         * @param fileFullName 文件读取全路径名称
         * @return
         */
        public static byte[] readOnce(String fileFullName) throws IOException {
            // open the file
            File file = new File(fileFullName);
            return readOnce(file);
        }
    
        /**
         * 小文件读取,一次buffer缓冲,将全部文件内容读出,若不能一次读出则throw IOException,不执行数据读取操作。
         *
         * @param file
         * @return
         */
        public static byte[] readOnce(File file) throws IOException {
            //check the file is Exists
            checkFileExists(file);
            // check the file is too long, if the file length is too long ,returned. because the byte array can not buffered.
            // byte array bufferSize=file.lenght,and  must between 0 and Integer_MAX_VALUE
            if (file.length() > Integer.MAX_VALUE) {
                System.err.println("file is too big ,not to read !");
                throw new IOException(file.getName() + " is too big ,not to read ");
            }
            int _bufferSize = (int) file.length();
            //定义buffer缓冲区大小
            byte[] buffer = new byte[_bufferSize];
            FileInputStream in = null;
            try {
                in = new FileInputStream(file);
                int len = 0;
                if ((len = in.available()) <= buffer.length) {
                    in.read(buffer, 0, len);
                }
            } finally {
                closeInputStream(in);
            }
            return buffer;
        }
    
        public static byte[] readByByteArrayOutputStream(File file) throws IOException {
            checkFileExists(file);
            // 传统IO方式
            //1、定义一个Byte字节数组输出流,设置大小为文件大小
            //2、将打开的文件输入流转换为Buffer输入流,循环 读取buffer输入流到buffer[]缓冲,并将buffer缓冲数据输入到目标输出流。
            //3、将目标输出流转换为字节数组。
            ByteArrayOutputStream bos = new ByteArrayOutputStream((int) file.length());
            BufferedInputStream bin = null;
            try {
                bin = new BufferedInputStream(new FileInputStream(file));
                byte[] buffer = new byte[1024];
                while (bin.read(buffer) > 0) {
                    bos.write(buffer);
                }
                return bos.toByteArray();
            } finally {
                closeInputStream(bin);
                closeOutputStream(bos);
            }
        }
    
        public static byte[] readByNIO(File file) throws IOException {
            checkFileExists(file);
            //1、定义一个File管道,打开文件输入流,并获取该输入流管道。
            //2、定义一个ByteBuffer,并分配指定大小的内存空间
            //3、while循环读取管道数据到byteBuffer,直到管道数据全部读取
            //4、将byteBuffer转换为字节数组返回
            FileChannel fileChannel = null;
            FileInputStream in = null;
            try {
                in = new FileInputStream(file);
                fileChannel = in.getChannel();
                ByteBuffer buffer = ByteBuffer.allocate((int) fileChannel.size());
    
                while (fileChannel.read(buffer) > 0) {
                }
                return buffer.array();
            } finally {
                closeChannel(fileChannel);
                closeInputStream(in);
            }
        }
    
        public static byte[] readRandomAccess(File file) throws IOException {
    
            //1、使用RandomAccessFile打开文件管道
            //2、创建MappedByteBuffer,并使用NIO管道进行数据映射,加载数据到物理内存
            //3、读取数据到byte数组中。
            FileChannel channel = new RandomAccessFile(file, "r").getChannel();
            int fileSize = (int) channel.size();
            try {
                //load(): 将此缓冲区的内容加载到物理内存中。此方法尽最大努力确保当它返回时,缓冲区的内容驻留在物理内存中。调用此方法可能会导致出现一些页面错误和I/O操作。
                MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, fileSize).load();
                //remaining() 返回当前位置和限制之间的元素数。此缓冲区中剩余的元素数
                byte[] result = new byte[fileSize];
                if (buffer.remaining() > 0) {
                    buffer.get(result, 0, fileSize);
                }
                buffer.clear();
                return result;
            } finally {
                closeChannel(channel);
            }
        }
    
        private static void checkFileExists(File file) throws FileNotFoundException {
            if (file == null || !file.exists()) {
                System.err.println("file is not null or exist !");
                throw new FileNotFoundException(file.getName());
            }
        }
    
        private static void closeChannel(FileChannel channel) {
            try {
                channel.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        private static void closeOutputStream(OutputStream bos) {
            try {
                bos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        private static void closeInputStream(InputStream in) {
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    用例测试

    package com.wang.chao.file.demo;
    
    
    import com.wang.chao.file.demo.read.FileReaderUtils;
    
    import java.io.File;
    
    public class StartFileReaderDemo {
        private static final String fileName = "E:\\home\\iwu\\logs\\mock.log";
    
        public static void main(String[] args) throws Exception {
            File file = new File(fileName);
    
            System.out.println("===============================read once =========================================");
            System.out.println(new String(FileReaderUtils.readOnce(fileName)));
            System.out.println("===============================readByByteArrayOutputStream =========================================");
            System.out.println(new String(FileReaderUtils.readByByteArrayOutputStream(file)));
            System.out.println("===============================readByNIO =========================================");
            System.out.println(new String(FileReaderUtils.readByNIO(file)));
            System.out.println("===============================readRandomAccess =========================================");
            System.out.println(new String(FileReaderUtils.readRandomAccess(file)));
    
        }
    }
    

     

    展开全文
  • 直接上代码/*** 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。*/public static byte[] readFileByBytes(String fileName) {InputStream in = null;ByteArrayOutputStream out = new ...

    直接上代码

    /**

    * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。

    */

    public static byte[] readFileByBytes(String fileName) {

    InputStream in = null;

    ByteArrayOutputStream out = new ByteArrayOutputStream();

    try {

    in = new FileInputStream(fileName);

    byte[] buf = new byte[1024];

    int length = 0;

    while ((length = in.read(buf)) != -1) {

    out.write(buf, 0, length);

    }

    } catch (Exception e1) {

    e1.printStackTrace();

    } finally {

    if (in != null) {

    try {

    in.close();

    } catch (IOException e1) {

    }

    }

    }

    return out.toByteArray();

    }

    原文:http://blog.csdn.net/smile0198/article/details/19015027

    展开全文
  • java对象转成byte数组的三种方法

    千次阅读 2021-01-21 15:13:50
    java对象转成byte数组,在使用netty进行通信协议传输的场景中是非常常见的。比如,协议有一些定好的协议头、classid,messageid等等信息,还有一个关键的内容是payload。不同的协议内容都会放到payload中,而这个...
  • Java将rgb byte数组转成jpg

    千次阅读 2019-04-26 18:03:08
    //将转换后的图片输出到本地 public boolean rgbBytesToJpg(byte[] rgb, String afterPath, float jpgQuality) { try { BufferedImage bufferedImage = new BufferedImage(210, 370, BufferedImage.TY...
  • 文件工具类 ... import org.springframework.beans.factory.annotation.Value; import org.springframework.web.multipart.MultipartFile;...import java.io.*;...import java.net.URLDecoder; import jav.
  • 本地找到一个很好的文件,里面包含工程应用中常用的整数与字节、字节数组之间的转换,保存下来,方便使用。 ps:今天在应用Modbus RTU协议时,在接收到的数据帧校验时就用到了CRC计算与接收的CRC的校验,其中用到...
  • // logo.jpg为resource目录下的图片路径,采用ClassPathResource,部署到服务器之后也可以获取到resource下的图片 ClassPathResource classPathResource = new ClassPathResource("logo.jpg"); try { InputStream ...
  • Java把一个文件转化为byte字节数组

    千次阅读 2020-03-07 17:50:28
    /** * 把一个文件转化为byte字节数组。 * * @return */ private byte[] fileConvertToByteArray(File file) { byte[] data = null; try { FileInputStream fis = new Fi...
  • import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import javax.imageio
  • Java获取文件的byte数组数据

    千次阅读 2021-03-06 05:19:41
    public static byte[] getFileByteArray(File file) {long fileSize = file.length();if (fileSize > Integer.MAX_VALUE) {System.out.println("file too big...");return null;}byte[] buffer = null;try (FileI...
  • 这是一段将byte数组写入文件的JAVA代码,适用于手机移动开发,可以用来测试从服务器接收的输出流到本地是否正确
  • java 读取本地文件并转换为byte数组

    千次阅读 2019-10-09 09:11:19
    private byte[] InputStream2ByteArray(String filePath) throws IOException { InputStream in = new FileInputStream(filePath); byte[] data = toByteArray(in); in.close(); return...
  • c++调用java写的webservice时,需要传入一个本地图片转化为byte数组的数据,求大神给讲一下。 这是java写的webservice接口方法。 public String verifyFaceSingle(String deviceId,byte[] leftImage,byte[] ...
  • java对象转成byte数组,在使用netty进行通信协议传输的场景中是非常常见的。比如,协议有一些定好的协议头、classid,messageid等等信息,还有一个关键的内容是payload。不同的协议内容都会放到payload中,而这个...
  • Java - 数组拷贝的几种方式(转)

    千次阅读 2021-02-12 19:22:22
    目前在Java中数据拷贝提供了如下方式:cloneSystem.arraycopyArrays.copyOfArrays.copyOfRange下面分别介绍他们的用法1、clone 方法clone方法是从Object类继承过来的,基本数据类型(int ,boolean,char,byte,...
  • Java数组

    2021-02-27 15:01:52
    数组都有默认值内存:栈内存、堆内存、方法区、本地方法栈(和其他语言交互)、寄存器(汇编)栈内存:可以用于存储变量,栈内存对存入其中的变量不会自动赋值,变量在使用完成之后会立即移出栈内存释放空间堆内存:用于...
  • 如何才能快速比较两个字节数组呢?我将问题描述成下面的接口:public int compareTo(byte[] b1, int s1, int l1, byte[] b2, int s2,int l2);最直观的做法是同时遍历两个数组,两两比较。public int compareTo(byte[]...
  • Java中,将字节数组转成图片的有很多种方式,今天在这里记录其中一种,方便以后查询,也可以提供给没有接触的童鞋做一个参考。首先是将图片转成字节数组import sun.misc.BASE64Encoder;import java.io.*;// 传入图片...
  • 主要介绍了java从输入流中获取数据并以字节数组返回,这是一个常用的方法,以后可以直接拿来用。这种输入流可以来自Android本地,也可以来自网络
  • 原文链接:Writing byte[] to a File in Java 1. Overview In this quick tutorial, we're going to learn several different ways to write a Java byte array to a file. We'll start at the beginning, ...
  • public void saveToSDTemp11Byte(byte[] dataResult,String fileName) {FileOutputStream os = null;//文件输出流用于写文件String temp=null;//录音数据字符串的形式保存在该文件中,便于做仿真对比// 数据存储文件...
  • java对获取的字节数组bytes[]进行处理:第一种,直接将该字节数组转换为字符串(部分):String content = new String(dp.getData(),0,2); //从位置0开始获取2个字节这样,对获取的数据报进行全部转换:String content ...
  • 将文件转换成byte数组

    千次阅读 2019-08-09 15:13:27
    * 将文件转换成byte数组 * @param file * @return */ public static byte[] File2byte(File file){ byte[] buffer = null; try { FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream...
  • 我想开发一个简单的java音乐播放器,使用这个Sonic算法来加速和播放音乐github/Sonic.java. 以下是主要课程:github/Main.java. Main.java只需调用Sonic.java就可以播放音乐。尽管它在运行WAV文件时运行良好,但我想要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 77,263
精华内容 30,905
关键字:

java本地图片byte数组

java 订阅