精华内容
下载资源
问答
  • Java文件byte[]类型转File

    千次阅读 2021-01-09 14:31:07
    import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException;... * 文件byte[]类型转File * * @param bytes bytes * @param outP.
    package com.biubiu.utils;
    
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class Utils {
    
        /**
         * 文件byte[]类型转File
         *
         * @param bytes     bytes
         * @param outPath   输出目录
         * @param fileName  文件名
         * @return
         */
        public static File bytesToFile(byte[] bytes, String outPath, String fileName) {
            BufferedOutputStream bos = null;
            FileOutputStream fos = null;
            File file = null;
            try {
                File dir = new File(outPath);
                if (!dir.exists() && dir.isDirectory()) { //判断文件目录是否存在
                    dir.mkdirs();
                }
                file = new File(outPath + File.separator + fileName);
                fos = new FileOutputStream(file);
                bos = new BufferedOutputStream(fos);
                bos.write(bytes);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (bos != null) {
                    try {
                        bos.close();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
                if (fos != null) {
                    try {
                        fos.close();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
            }
            return file;
        }
    
    }
    

     

    展开全文
  • 下面小编就为大家带来一篇读取Java文件byte数组的三种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 有时候我们拿到一个视频文件或者一张图片文件,经过处理之后想把文件转成字符串String返回给前端,当然这里我们不会直接把String返回给前端,我们会经过处理,比如做Base64处理返回。这里我们先讨论一下如何把文件转...

    有时候我们拿到一个视频文件或者一张图片文件,经过处理之后想把文件转成字符串String返回给前端,当然这里我们不会直接把String返回给前端,我们会经过处理,比如做Base64处理返回。这里我们先讨论一下如何把文件转成String的问题,请看代码:

    	public static void testFileByteCode(){
            try {
            	// 输出默认的字符集
                System.out.println(Charset.defaultCharset());
                File file = new File("/Users/mac/Desktop/B612/a.jpg");
    //            File file = new File("/Users/mac/Desktop/B612/ms/mp4/c.mp4");
                byte[] bytes = FileUtils.readFileToByteArray(file);
    
                String s1 = new String(bytes);
    
                // 直接输出byte数组的长度
                System.out.println(bytes.length);
                // new String(),系统默认字符集,我是mac,默认是UTF-8
                System.out.println(s1.length());
                System.out.println(s1.getBytes().length);
    
                String s2 = new String(bytes,Charsets.ISO_8859_1);
                // new String(),用ISO_8859_1字符集编码
                System.out.println(s2.length());
                System.out.println(s2.getBytes(Charsets.ISO_8859_1).length);
    
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    

    a.jpg这张图片输出的结果为:

    9516
    9013
    16983
    9516
    9516
    

    c.mp4这个视频文件输出的结果为:

    7990662
    7566344
    14478208
    7990662
    7990662
    

    通过以上结果我们发现,new String()只有在使用ISO_8859_1字符集的时候,最终生成的字符串的长度或者字节数组的长度才和我们的文件的原始字节数组的长度一样。
    所以我们得出的结论就是在对图片或者视频等这类文件进行字节数组转String的时候要使用ISO_8859_1字符集。

    参考:https://www.2cto.com/kf/201703/613168.html

    展开全文
  • Java读取文件byte转化String问题

    千次阅读 2017-03-16 20:25:46
    byte转化String,使用ISO-8859-1编码

    最近接触了关于读取文件获得byte数组转化为String后的问题,具体代码如下:

    // 打开图片作为临时文件
    		File tempFile = new File("C:/Users/Administrator/Desktop/test.jpg");
    		try {
    			FileInputStream fis = new FileInputStream(tempFile);
    			byte[] bytes = new byte[1024];
    			// 读取文件byte数组
    			fis.read(bytes);
    			System.out.println("bytes.length " + bytes.length);
    			// 直接转化为String
    			String bytesStr = new String(bytes);
    			System.out.println("bytesStr.length() " + bytesStr.length());
    			System.out.println("bytesStr.getBytes().length " + bytesStr.getBytes().length);
    			// 使用ISO-8859-1编码转化为String			
    			String bytesStr2 = new String(bytes, "ISO-8859-1");
    			System.out.println("bytesStr2.length() " + bytesStr2.length());
    			System.out.println("bytesStr2.getBytes(\"ISO-8859-1\").length " + bytesStr2.getBytes("ISO-8859-1").length);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}

    运行出来效果如下:

    Byte to String


    可以发现在使用ISO-8859-1编码后,byte和String的转化问题得到了解决,长度达到了一致。

    展开全文
  • File 文件 byte[] 字节 Base64 互转

    千次阅读 2017-09-22 19:41:50
    /** * 通过文件路径将文件转成Base64编码 * @param path 文件路径 * @return base64结果 */ public static String imageToBase64(String path) { // 将图片文件转化为字节数组字符串,并对其进行Base... byte[] d
       /**
         * 通过文件路径将文件转成Base64编码
         * @param path 文件路径
         * @return base64结果
         */
        public static String imageToBase64(String path) {
            // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
            byte[] data = null;
            // 读取图片字节数组
            try {
                InputStream in = new FileInputStream(path);
                data = new byte[in.available()];
                in.read(data);
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            // 对字节数组Base64编码
            BASE64Encoder encoder = new BASE64Encoder();
            return encoder.encode(data);// 返回Base64编码过的字节数组字符串
        }
    
        /**
         * 将图片文件转成Base64编码
         * @param file 文件
         * @return base64码
         */
         public static imageToBase64(File file) {
            // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
            byte[] data = null;
            // 读取图片字节数组
            try {
                InputStream in = new FileInputStream(file);
                data = new byte[in.available()];
                in.read(data);
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            // 对字节数组Base64编码
            BASE64Encoder encoder = new BASE64Encoder();
            return encoder.encode(data);// 返回Base64编码过的字节数组字符串
        }
    
        /**
         * byte[] 字节转Base64编码
         * @param bytes 数组字节
         * @return base64码
         */
         public static stringBase64(byte[] bytes){
            BASE64Encoder encoder = new BASE64Encoder();
            return encoder.encode(bytes);// 返回Base64编码过的字节数组字符串
        }
    
        /**
         * 文件转byte[] 数组
         * @param file 文件
         * @return byte[]
         */
        public static byte[] imgToByte(File file) {
            byte[] data = null;
            try {
                InputStream in = new FileInputStream(file);
                data = new byte[in.available()];
                in.read(data);
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return data;
        }
    
       /**
         * 对字节数组字符串进行Base64解码并生成图片
         * @param imgStr base64字符串
         * @param imgFilePath 指定输出路径
         * @return 布尔值
         */
    	public static boolean GenerateImage(String imgStr, String imgFilePath) { 
            if (imgStr == null) // 图像数据为空   
                return false;   
            BASE64Decoder decoder = new BASE64Decoder();   
            try {   
                // Base64解码   
                byte[] bytes = decoder.decodeBuffer(imgStr);   
                for (int i = 0; i < bytes.length; ++i) {   
                    if (bytes[i] < 0) {// 调整异常数据   
                        bytes[i] += 256;   
                    }   
                }   
                // 生成jpeg图片   
                OutputStream out = new FileOutputStream(imgFilePath);   
                out.write(bytes);   
                out.flush();   
                out.close();   
                return true;   
            } catch (Exception e) {   
                return false;   
            }   
        }
    
        /**
         * 对字节数组字符串进行Base64解码
         * @param imgStr base64字符串
         * @return byte[]
         */
    	public static byte[] changeBase64(String imgStr) { 
            String  base = "";
            BASE64Decoder decoder = new BASE64Decoder();
            byte[] bytes = null;
            try {   
                // Base64解码   
                bytes = decoder.decodeBuffer(imgStr);   
                for (int i = 0; i < bytes.length; ++i) {   
                    if (bytes[i] < 0) {// 调整异常数据   
                        bytes[i] += 256;   
                    }   
                }   
                // 生成jpeg图片
            } catch (Exception e) {   
               e.printStackTrace();
            }  
            return bytes;
        }

    展开全文
  • 1.文件Byte[]: // 第1步、使用File类找到一个文件 File f= new File("e:/demo/demoNext" + File.separator + "java.docx") ; // 声明File对象 // 第2步、通过子类实例化父类对象 ...
  • java读取文件byte[]

    千次阅读 2019-08-12 19:46:05
    //读取文件byte[] private static byte[] getFileBytes(String file) { try { File f = new File(file); int length = (int) f.length(); byte[] data = new byte[len...
  • byte[] bytes = FileUtils.getBytes(new File("F:/testFile/root.zip")); File zipFile=new File("F:/testFile/1.zip"); ByteArrayOutputStream byteOSZip = new ByteArrayOutputStream(4096); ...
  • 来下载excel文件,遇到了下载内容是一堆英文字母乱码的问题。仔细看了下,应该是下载的内容byte 都变成base64了。 解决办法:加一个配置类,如下: import lombok.extern.slf4j.Slf4j; import org.springframework...
  • 文件byte数组之间相互转换

    千次阅读 2018-10-09 15:19:53
    文件byte数组之间相互转换 文件转换成byte数组 文件转换成byte数组有两种方式: 1. 传统方式 File file = new File(&quot;/temp/abc.txt&quot;); //init array with file length byte[] bytesArray ...
  • java 获得指定文件byte数组 ,根据byte数组,生成文件
  • 这是一段将byte数组写入文件的JAVA代码,适用于手机移动开发,可以用来测试从服务器接收的输出流到本地是否正确
  • 批量下载--压缩文件   String[] nameAll = name.split(",");//接收打包数组 /** * 定义压缩包 */ String downloadFilename = "压缩包名称.zip"; downloadFilename = URLEncoder.encode...
  • 使用byte[]进行文件上传

    千次阅读 2018-03-27 17:06:49
    1.背景 需要以byte[]数据流的方式传输文件到服务器,并在服务器还原文件。2.代码(1)转换为byte[] # region function1 FileStream fs = File.OpenRead(@"D:\\workspace\test.txt"); MemoryStream ...
  • 文件文件转成 byte[]

    千次阅读 2019-02-15 09:11:17
    文件byte[] ,用方法2,亲测有效。方法1在写小文件的时候没问题,比如jsp,text文件等。写大文件的时候,出现字节丢失,比如wav,mp3等文件。 public static byte[] input2byte(InputStream inStream) throws ...
  • 以下: /** * * * @param sZipPath * @return * @see [类、类#方法、类#成员] */ private byte[] changeFileToByte(String sZipPath) { byte[] buffer = null; try
  • MultipartFile转化为byte数组 byte[] imgBytes = multipartFile.getBytes(); byte数组转化为MultipartFile 转换中我们会使用MockMultipartFile这个类,所有要引用相应包。 <dependency> <groupId&...
  • Java byte[]方式读写文件(终极实现)

    千次阅读 2019-12-20 19:02:43
    尤其是读写byte[],因为所有类型的文件归根结底都是byte[]。但是很多人写的代码往往只是简单的实现功能,既不考虑代码执行效率,也不考虑代码的美观程度。 要知道程序员最最痛苦的不是写不出代码实现不了功能,而是...
  • Java读取文件转换成byte[]的小结

    万次阅读 2018-12-29 10:52:47
    1、FileInputStream /** * * &...Description:根据文件路径读取文件转出byte[] &lt;/p&gt; * @param filePath文件路径 * @return 字节数组 * @throws IOException */ ...
  • C#FTP下载文件返回文件路径或者byte[]

    千次阅读 2017-03-29 16:55:15
    FTP下载文件返回文件路径和返回byte[]方法,以PDF为例 FTP下载文件保存到本地并返回文件路径 public static string returnFilePath(string filePath, int yymxid) { FtpWebRequest reqFTP; try ...
  • Java获取文件byte数组数据

    千次阅读 2019-04-09 19:17:55
    Java获取文件byte数组数据 public static byte[] getFileByteArray(File file) { long fileSize = file.length(); if (fileSize > Integer.MAX_VALUE) { System.out.println("file too big....
  • 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...
  • Java 将文件转换写入byte[]

    千次阅读 2017-07-05 10:46:17
    Java 将文件转换写入byte[]
  • C# 读写byte[]文件

    千次阅读 2017-09-07 17:40:12
    文件byte[]的函数: public static bool readFile(string filePathName, out byte[] bytes)  { FileStream stream = new FileStream(filePathName, FileMode.Open); bool ret = false; ...
  • 文件byte[]数组间的相互转换

    千次阅读 2019-07-29 16:40:23
    工具类: package io.renren.modules.job.utils; import java.io.*; public class ByteToFile { ... * 根据byte数组,生成文件 */ public static void getFile(byte[] bfile, String filePath,String fi...
  • byte数组转换成文件保存到本地

    千次阅读 2019-10-04 16:48:56
    var ms=new MemoryStream(byte[] bytes); using(var fs=new FileStream(路径 例如:"D:\image\myimage.jpg")) { ms.writeto(fs); } 转载于:https://www.cnblogs.com/wzh13681626019/archive/20...
  • Android:java byte数组文件读写学习实例 一、该实例把byte写入一个image_data.txt文件,然后再用两种方法读取image_data.txt文件里面的byte内容然后分别写入image_read_and_write_data.txt、image_read_...
  • 先要区分两个名词:FileInputStream和FileOutputStream。这两个名词都是相对于应用来说的,而不是相对于文件。...读取文件数据到byte数组典型做法: private byte[] readFileToByteArray(String path) { ...
  • JAVA中文件Byte数组相互转换的方法

    万次阅读 2018-08-16 16:02:57
    参考:... JAVA中文件Byte数组相互转换的方法,如下: public class FileUtil { //将文件转换成Byte数组 public static byte[] getBytesByFile(String pathStr) { File file = n...
  • Java之文件、各数据类型转byte[]

    千次阅读 2018-09-26 15:55:41
    1.文件byte数组 a.传统方式: //文件路径具体到文件名字 File fileOne = new File("/file/file.txt"); byte[] bytesArray = new byte[(int) fileOne .length()]; FileInputStream fis = new ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 722,614
精华内容 289,045
关键字:

文件byte