精华内容
下载资源
问答
  • 将byte数组写入文件

    万次阅读 2017-01-12 10:16:57
    public static void writeBytesToFile() throws IOException{ String s = "aaaaaaaa"; byte[] bs= s.getBytes(); OutputStream out = new FileOutputStream("/storage/sdcard0/aaa");
    public static void writeBytesToFile() throws IOException{
            String s = "aaaaaaaa";
            byte[] bs= s.getBytes();
            OutputStream out = new FileOutputStream("/storage/sdcard0/aaa");
            InputStream is = new ByteArrayInputStream(bs);
            byte[] buff = new byte[1024];
            int len = 0;
            while((len=is.read(buff))!=-1){
                out.write(buff, 0, len);
            }
            is.close();
            out.close();
        }

    展开全文
  • 这是一段将byte数组写入文件的JAVA代码,适用于手机移动开发,可以用来测试从服务器接收的输出流到本地是否正确
  • Android将byte数组写入文件

    千次阅读 2019-06-17 18:43:50
    1.先看看效果图吧: 打印的日志: /... ...2.写入文件当然需要先添加权限 <uses-permission android:name="android.permission.WRITE_EXT...

    1.先看看效果图吧:

    打印的日志:

    /com.example.administrator.testz E/TAG: getCrashFilePath: /storage/emulated/0/Testz/Crash/

     

    2.写入文件当然需要先添加权限

      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    

    3.开始写byte数组

    package com.example.administrator.testz;
    
    import android.annotation.SuppressLint;
    import android.content.Context;
    import android.os.Environment;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    
    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.Locale;
    
    public class MainActivity extends AppCompatActivity {
        private static final String CRASH_REPORTER_EXTENSION = ".txt";
        private Button btn;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            btn = (Button) findViewById(R.id.btn_write);
    
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    try {
                        writeBytesToFile();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    
    
        public void writeBytesToFile() throws IOException {
            StringBuilder sb = new StringBuilder();
            @SuppressLint("SimpleDateFormat") SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
            String now = sdf.format(new Date());
            sb.append("TIME:").append(now);
            String s = "69 00 01 03 AA 16";
            byte[] bs = s.getBytes();
            OutputStream out = new FileOutputStream(getCrashFilePath(MainActivity.this) + now + CRASH_REPORTER_EXTENSION);
            InputStream is = new ByteArrayInputStream(bs);
            byte[] buff = new byte[1024];
            int len = 0;
            while ((len = is.read(buff)) != -1) {
                out.write(buff, 0, len);
            }
            is.close();
            out.close();
        }
    
        /**
         * 获取文件夹路径
         *
         * @param context
         * @return
         */
        private static String getCrashFilePath(Context context) {
            String path = null;
            try {
                path = Environment.getExternalStorageDirectory().getCanonicalPath() + "/"
                        + context.getResources().getString(R.string.app_name) + "/Crash/";
                File file = new File(path);
                if (!file.exists()) {
                    file.mkdirs();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            Log.e("TAG", "getCrashFilePath: " + path);
            return path;
        }
    }
    

    注意保存文件,要做动态权限申请

     

    2.把byte转成16进制的数据,在存,大家以后碰到类似的需求时,一定要学会灵活应用

    package com.example.administrator.testz;
    
    import android.annotation.SuppressLint;
    import android.content.Context;
    import android.os.Environment;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    
    import java.io.BufferedInputStream;
    import java.io.ByteArrayInputStream;
    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.InputStream;
    import java.io.OutputStream;
    import java.io.UnsupportedEncodingException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.Locale;
    
    public class MainActivity extends AppCompatActivity {
        private static final String CRASH_REPORTER_EXTENSION = ".txt";
        private Button btn;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            btn = (Button) findViewById(R.id.btn_write);
    
    
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    try {
                        writeBytesToFile();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    
    
        /**
         * 字节数组转成16进制表示格式的字符串
         *
         * @param byteArray 需要转换的字节数组
         * @return 16进制表示格式的字符串
         **/
        public static String toHexString(byte[] byteArray) {
            if (byteArray == null || byteArray.length < 1)
                throw new IllegalArgumentException("this byteArray must not be null or empty");
    
            final StringBuilder hexString = new StringBuilder();
            for (int i = 0; i < byteArray.length; i++) {
                if ((byteArray[i] & 0xff) < 0x10)//0~F前面不零
                    hexString.append("0");
                hexString.append(Integer.toHexString(0xFF & byteArray[i]));
            }
            return hexString.toString().toLowerCase();
        }
    
        public void writeBytesToFile() throws IOException {
            StringBuilder sb = new StringBuilder();
            @SuppressLint("SimpleDateFormat") SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
            String now = sdf.format(new Date());
            sb.append("TIME:").append(now);
            byte[] datas = new byte[]{0x69, 0x01, 0x05, 0x03, 0x65, 0x16};
            byte[] bs = toHexString(datas).getBytes();
            OutputStream out = new FileOutputStream(getCrashFilePath(MainActivity.this) + now + CRASH_REPORTER_EXTENSION);
            InputStream is = new ByteArrayInputStream(bs);
            byte[] buff = new byte[1024];
            int len = 0;
            while ((len = is.read(buff)) != -1) {
                out.write(buff, 0, len);
            }
            is.close();
            out.close();
        }
    
        /**
         * 获取文件夹路径
         * @param context
         * @return
         */
        private static String getCrashFilePath(Context context) {
            String path = null;
            try {
                path = Environment.getExternalStorageDirectory().getCanonicalPath() + "/"
                        + context.getResources().getString(R.string.app_name) + "/Crash/";
                File file = new File(path);
                if (!file.exists()) {
                    file.mkdirs();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            Log.e("TAG", "getCrashFilePath: " + path);
            return path;
        }
    }
    

     

    展开全文
  • 下面是一个如何适当地执行从文件中读取字节数组的反向操作(抱歉,这只是我已经准备好的代码,我不希望asker实际粘贴并使用此代码):public static byte[] toByteArray(File file) throws IOException {...

    一位评论者问:“为什么要使用第三方库?”答案是,你自己做这件事太痛苦了。下面是一个如何

    适当地

    执行从文件中读取字节数组的反向操作(抱歉,这只是我已经准备好的代码,我不希望asker实际粘贴并使用此代码):

    public static byte[] toByteArray(File file) throws IOException {

    ByteArrayOutputStream out = new ByteArrayOutputStream();

    boolean threw = true;

    InputStream in = new FileInputStream(file);

    try {

    byte[] buf = new byte[BUF_SIZE];

    long total = 0;

    while (true) {

    int r = in.read(buf);

    if (r == -1) {

    break;

    }

    out.write(buf, 0, r);

    }

    threw = false;

    } finally {

    try {

    in.close();

    } catch (IOException e) {

    if (threw) {

    log.warn("IOException thrown while closing", e);

    } else {

    throw e;

    }

    }

    }

    return out.toByteArray();

    }

    每个人都应该对这是多么的痛苦感到震惊。

    展开全文
  • * 将byte数组写入文件 * * @param path * @param fileName * @param content * @throws IOException */ public static void writeFile(String path, String fileName, byte[] content) throws ...
           /**
    	 * 将byte数组写入文件
    	 * 
    	 * @param path
    	 * @param fileName
    	 * @param content
    	 * @throws IOException
    	 */
    	public static void writeFile(String path, String fileName, byte[] content)
    			throws IOException {
    		try {
    			File f = new File(path);
    			if (!f.exists()) {
    				f.mkdirs();
    			}
    			FileOutputStream fos = new FileOutputStream(path + fileName);
    			fos.write(content);
    			fos.close();
    		} catch (IOException e) {
    			throw new RuntimeException(e);
    		}
    	}
    
    
    
    	/**
    	 * 写文件方法
    	 * 
    	 * @param path
    	 * @param name
    	 * @param content
    	 * @param encoding
    	 */
    	public static void writeFile(String path, String name, String content,
    			String encoding) {
    		if (content == null)
    			content = "";
    		try {
    			File f = new File(path);
    			if (!f.exists()) {
    				f.mkdirs();
    			}
                            //利用org.apache.commons.io.FileUtils快速写文件
                           org.apache.commons.io.FileUtils.writeStringToFile(new File(path
    					+ name), content, encoding);
    		} catch (IOException e) {
    			throw new RuntimeException(e);
    		}
    	}
    
    	/**
    	 * 写文件
    	 * 
    	 * @param url
    	 * @param dist 
    	 * @return
    	 */
    	public static boolean writeFile(String url, File dist) {
    		try {
    			writeFile(new URL(url).openStream(), dist);
    			return true;
    		} catch (IOException e) {
    			//无法下载图片,文本等
    		}
    		return false;
    	}

    展开全文
  • 如果已经获得了byte[]数组,准备写入文件,要求两个字节之后加一个空格或者回车换行,如“1234567890”,写入格式为“12 34 56 78 90”,可采用下面的方法 Char[] ch = Encoding.ASCII.GetChars(bytRecv); ...
  • java byte数组文件读写 分类: java 2012-04-12 22:03 ...一个文件内的所有内容读取到byte数组,也可以把一个byte[]的内容写入文件中。可以作为复制文件的方法 [java] view plaincopy impor
  • java实现字节数组写入到新建文件中 1.具体代码如下所示: public class FileUtil { /** * 方法功能:字节数组写入到新建文件中。 * @param String fname * @param byte[] msg * @return boolean * */...
  • 所有的东西都能读到字节数组中,我们可以图片读到字节数组中,然后它还原。我们在读图片的时候需要程序做中转,先图片读到程序中。然后再读到字节数组中。如何图片以字节数组的方式输出讲一下数组输入流中...
  • FileInputStream通过字节的方式读取文件,适合读取所有类型的文件(图像、视频、文本文件等)。Java也提供了FileReader专门读取...1、将文件内容读取到程序中使用 FileInputStream 读取文件内容常用方法:1) abstrac...
  • 先要区分两个名词:FileInputStream和FileOutputStream。...数据写入文件中时,使用FileOutputStream。 读取文件数据到byte数组典型做法: private byte[] readFileToByteArray(String path) { ...
  • 今天在测试直接写的文章: java byte【】数组与文件读写 时,想调用FileHelper类对字节数组以追加的方式写文件,结果无论怎样...//将byte数组写入文件 public void createFile(String path, byte[] content) thr...
  • 公司项目需要mp3文件或者zip文件转换成Base64字符串上传,但获取到的字符串总是有乱码存在,不知道是在哪个环节出的问题。希望大佬可以提供一些方法或者demo之类的帮下小弟。
  • 因为字节数组,除了写入文件或者以二进制的形式写入数据库以外,无法直接转为为字符串,因为字符串结尾有\0,当然肯定还有其他原因。下面提供几种Java中使用的方案:方案一:直接利用BigInteger的方法,应该是最简单...
  • 在这篇文章中,我向您展示如何文件转换为字节数组,然后再字节数组转换为文件。要文件转换为字节数组,请使用ByteArrayOutputStream类。此类实现输出流,在该流中,...文件输出流是用于数据写入文件或F...
  • java 合并两个byte数组

    2013-09-02 11:43:00
    Java多线程调用写文件函数,调用org.apache.commons.io.FileUtils....为了解决这个问题,写之前,一条记录的多个部分(byte数组)合并为一个byte数组,一次写入。 合并byte数组从网上找了个,很好用: ...
  • <p>I send 'data' to a client that's written in Python3, and need to convert this byte array back to a zip file and put it in a specified directory. I've tried this: <pre><code>file_bytes = msg_obj[...
  • 目录一、转换流二、字节缓冲流三、字符缓冲流四、序列化流与反序列化流五、打印流六、标准输入、输出流七、IO...是字符通向字节的桥梁, 字符流 转成 字节流write():字符,字符数组,字符串(2) 构造方法OutputSt...
  • 使用unity项目开发过程中需要用到系统截图功能时,其实主要的做法是RenderTexture转换为Texture2D,然后再转为byte数组,最后创建图片文件写入内存。下面是代码演示:public static bool SaveRenderTextureToPNG...
  • byte[] a = new byte[(int) file.length()]; fis = new FileInputStream(file); BufferedInputStream bis = new BufferedInputStream(fis); bis.read(a); fos = new FileOutputStream(file2); fos.write(a); ...
  • 在Java的网络编程中传输的经常是byte数组,但我们实际中使用的数据类型可能是任一种数据类型,这就需要在它们之间相互转换,转换的核心在于其他类型的数据的每一位转换成byte类型的数据。下面给出相关的转换代码...
  • 文件上传主要是将文件通过IO流传输到服务器的某一个特定的文件夹下。Why->MultipartFile?解析源码:publicinterfaceMultipartFileextendsInputStreamSource{}publicclassMockMultipartFileex...
  • 前言有时我们希望把数据保存在单个连续的数组中,以便快速、便捷地访问数据,但这需要调整数组大小或者对其扩展。Java 数组不能调整大小,只用数组不足以达成目标。可变长原始类型数组需要自己实现。本文展示...
  • 所有的东西都能读到字节数组中,我们可以图片读到字节数组中,然后它还原。我们在读图片的时候需要程序做中转,先图片读到程序中。然后再读到字节数组中。如何图片以字节数组的方式输出讲一下数组输入流中...
  • 在Java中:如何从byte []数组压缩文件?...我正在尝试快速压缩附件文件,而不先写入磁盘。有什么/可能的方法来实现这一结果?netic asked 2020-08-03T19:32:47Z5个解决方案109 votes您可以使用Java...
  • 点击蓝字关注我们在java中我们使用输入流来向一个字节序列对象中写入,使用输出流来向...而我准备其按照处理文件类型的不同,分为字节流类型和字符流类型。共两篇文章,本篇从字节流开始。主要包含以下内容:Inpu...
  • Java文件处理类都在http://java.io包中,处理类分成:节点类、包装类(转化类、装饰类...( 分别是1,5,1个字符,1个字符可能由多个字节来存储)数据类型:3, 5.25, abcde(字符串)文件是以字节保存,因此程序变量...
  • 上篇文章中,我们一起实现了一个内存版支持多线程BTree,它基本上是一个功能较为完整的BTree,支持增删查数据,但是它并不能保存...LSN把内存中的BTree写入文件,就是要把BTree下面的Node(ValueNode,LeafNode和In...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 250
精华内容 100
关键字:

将byte数组写入文件