将文件转换为字节数组的 Java 程序
为了说明机器本地目录中的文本文件到字节数组的转换,我们将考虑一个名为“假设它是本地目录中的‘gfg . txt’”的随机文件。让文件中的内容如下所示:
Geeks for Geeks.
注意:在做任何事情之前,先在系统存储库中创建一个文件来处理我们的程序\编写一个程序,因为我们将通过我们的程序访问同一个目录。
方法:
- 使用 FileInputStream 类的 read(byte[])方法
- 使用 Files.readAllBytes()方法
方法 1: 使用读取文件输入流类的(字节[])方法
FileInputStream 对于以字节序列的形式从文件中读取数据非常有用。FileInputStream 用于读取原始字节流,如图像数据。要读取字符流,请考虑使用文件阅读器。file inputstream 类的 read(byte[])方法,该方法读取文件的长度,然后将该输入流中的字节数据转换为字节数组。
程序:
- 使用文件路径创建文件输入流的实例。
- 创建一个长度相同的字节数组。
- 将文件内容读取到数组中
- 打印字节数组
- 关闭文件输入流的实例,因为这是一个很好的做法,以避免运行时遇到任何异常或错误,并释放内存资源,使我们的程序得到优化,从而加快执行速度。
例
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to Convert File to a Byte Array
// Using read(byte[]) method
// Importing required classes
import java.io.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;
// Main class
public class GFG {
// Method 1
// To convert file to byte array
public static byte[] method(File file)
throws IOException
{
// Creating an object of FileInputStream to
// read from a file
FileInputStream fl = new FileInputStream(file);
// Now creating byte array of same length as file
byte[] arr = new byte[(int)file.length()];
// Reading file content to byte array
// using standard read() method
fl.read(arr);
// lastly closing an instance of file input stream
// to avoid memory leakage
fl.close();
// Returning above byte array
return arr;
}
// Method 2
// Main driver method
public static void main(String[] args)
throws IOException
{
// Creating an object of File class and
// providing local directory path of a file
File path
= new File("C:\\Users\\HP\\Desktop\\gfg.txt");
// Calling the Method1 in main() to
// convert file to byte array
byte[] array = method(path);
// Printing the byte array
System.out.print(Arrays.toString(array));
}
}
输出:
[71, 101, 101, 107, 115, 32, 102, 111, 114, 32, 71, 101, 101, 107, 115, 46, 10]
现在让我们细想一下实现同样目标的另一种方式。
方法 2: 使用file . readall bytes()方法
java.nio.file.Files 类具有预定义的 readAllBytes()方法,该方法从文件中读取所有字节。
程序:
- 采用文本文件路径
- 通过调用 Files.readAllBytes()将该文件转换为字节数组。
- 打印字节数组。
例
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to Convert File to a Byte Array
// Using Files.readAllBytes() method
// Importing required classes
import java.io.*;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
throws IOException
{
// Creating an object of Path class and
// assigning local directory path of file to it
Path path
= Paths.get("C:\\Users\\HP\\Desktop\\gfg.txt");
// Now convert file into a byte array
// using Files.readAllBytes() method
byte[] arr = Files.readAllBytes(path);
// Lastly print the above byte array
System.out.println(Arrays.toString(arr));
}
}
输出:
[71, 101, 101, 107, 115, 32, 102, 111, 114, 32, 71, 101, 101, 107, 115, 46, 10]
版权属于:月萌API www.moonapi.com,转载请注明出处