学而实习之 不亦乐乎

Java中byte数组与InputStream之间的转换

2022-08-06 09:15:59

1、将File、FileInputStream 转换为byte[]数组:

File file = new File("file.txt");
InputStream input = new FileInputStream(file);
byte[] byt = new byte[input.available()];
input.read(byt);

2、将byte[]数组转换为InputStream:

byte[] byt = new byte[1024];
InputStream input = new ByteArrayInputStream(byt);

3、将byte[]数组转换为File:

File file = new File('');
OutputStream output = new FileOutputStream(file);
BufferedOutputStream bufferedOutput = new BufferedOutputStream(output);
bufferedOutput.write(byt);

4.字符串(String) 与 byte[] 数组

String str = "字符串与byte[]数组";
byte[] bytes = str.getBytes();
InputStream inputStream = new ByteArrayInputStream(bytes);

try {
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    byte[] buff = new byte[100];
    int rc = 0;
    while ((rc = inputStream.read(buff, 0, 100)) > 0) {
        byteArrayOutputStream.write(buff, 0, rc);
    }

    byte[] bytes1 = byteArrayOutputStream.toByteArray();
    String string = new String(bytes1, StandardCharsets.UTF_8);
    System.out.println("string = " + string);
} catch (IOException e) {
    System.out.println(e.toString());
}