Java mengubah file menjadi array byte
Kata kunci: File, aliran file, aliran byte, array byte, biner
Abstrak: Persyaratan terbaru yang dihadapi dalam pekerjaan adalah menggunakan HTTP untuk mengirimkan data biner ke antarmuka yang sesuai dari server, dan serangkaian data biner campuran seperti UserID dan File (dienkripsi). Artikel ini bertujuan untuk merekam beberapa pengetahuan dan ringkasan mengubah file menjadi array byte menggunakan java.
FileInputStream
Baca file dengan FileInputStream
FileInputStream adalah subclass dari InputStream, yang digunakan untuk membaca informasi dari file. Konstruktor menerima jenis file atau jenis string yang mewakili jalur file.
File file = file baru ("filePath"); fileInputStream fis = new fileInputStream (file); BytearrayoutputStream
Gunakan ByTeArrayOutputStream untuk membacakan data file di FileInputStream
BytearrayoutputStream digunakan untuk membuat buffer dalam memori, dan semua data yang dikirim ke "stream" harus ditempatkan di buffer ini.
BytearrayoutputStream bos = new bytearrayoutputStream (fis); byte [] b = byte baru [1024]; int len = -1; while ((len = fis.read (b))! = -1) {bos.write (b, 0, len);}Catatan: Metode tulis BytearRayOutputStream memiliki tiga formulir yang kelebihan beban:
tulis (int b)
Tulis byte yang ditentukan
tulis (byte [] b)
Tulis ke seluruh array byte b
tulis (byte [] b, int off, int len)
Tulis ke Byte Array B, mulailah dari subskrip off b, dan tulis len byte.
Yang kedua tidak digunakan di sini, tetapi yang ketiga digunakan. Dalam kode, jumlah bacaan ke buffer B umumnya 1024 (karena panjang yang ditentukan ditampilkan ketika B didefinisikan). Hanya ketika akhir dibaca, mungkin tidak cukup 1024 byte, dan jumlah aktual byte baca akan dibaca. Namun, ketika menulis ke buffer, jika jumlah penulisan tidak ditentukan, yaitu, Len tidak ditentukan, maka seluruh B akan ditulis. Bahkan jika hanya ada bagian dari konten dalam B, 1024 byte masih akan ditulis. Ini akan menyebabkan array byte yang dihasilkan bukan panjang yang sebenarnya saat menggunakan TobyTeArray!
Ini menulis aliran file dari inputStream ke bytearrayoutputStream.
Gunakan metode TobyTeArray () dari ByTeArrayOutputStream untuk mendapatkan array byte file.
byte [] fileByte = bos.tobytearray ();
Terima kasih telah membaca, saya harap ini dapat membantu Anda. Terima kasih atas dukungan Anda untuk situs ini!