Java处理字节的常用工具类
Java作为一门强大的编程语言,提供了一系列的工具类来处理字节数据。在以下的文章中,我将会详细讲解Java处理字节的常用工具类,包括InputStream
、OutputStream
、ByteArrayInputStream
、ByteArrayOutputStream
、DataInputStream
、DataOutputStream
、BufferedInputStream
、BufferedOutputStream
、InputStreamReader
、OutputStreamWriter
等类的使用方法以及示例说明。
InputStream(字节输入流)
InputStream是Java提供的用于读取字节数据(二进制数据)的抽象类,其相关常用子类有:
- FileInputStream:从文件中读取数据
- ByteArrayInputStream:从字节数组中读取数据
使用InputStream读取数据的一般步骤如下:
- 创建InputStream对象
- 使用InputStream对象中的方法读取数据
- 关闭InputStream对象
示例代码:
// 使用FileInputStream读取文件
File file = new File("test.txt");
InputStream inputStream = new FileInputStream(file); // 创建FileInputStream对象
byte[] data = new byte[(int) file.length()];
inputStream.read(data); // 读取数据到byte数组
inputStream.close(); // 关闭FileInputStream对象
// 使用ByteArrayInputStream读取字节数组
byte[] byteArray = {1, 2, 3, 4, 5};
InputStream byteArrayInputStream = new ByteArrayInputStream(byteArray); // 创建ByteArrayInputStream对象
byte[] data = new byte[byteArrayInputStream.available()];
byteArrayInputStream.read(data); // 读取数据到byte数组
byteArrayInputStream.close(); // 关闭ByteArrayInputStream对象
OutputStream(字节输出流)
OutputStream是Java提供的用于写入字节数据(二进制数据)的抽象类,其相关常用子类有:
- FileOutputStream:将数据写入文件
- ByteArrayOutputStream:将数据写入字节数组
使用OutputStream写入数据的一般步骤如下:
- 创建OutputStream对象
- 使用OutputStream对象中的方法写入数据
- 关闭OutputStream对象
示例代码:
// 使用FileOutputStream写入文件
File file = new File("test.txt");
OutputStream outputStream = new FileOutputStream(file); // 创建FileOutputStream对象
byte[] data = "Hello world!".getBytes();
outputStream.write(data); // 写入数据到文件
outputStream.close(); // 关闭FileOutputStream对象
// 使用ByteArrayOutputStream写入字节数组
String str = "Hello world!";
OutputStream byteArrayOutputStream = new ByteArrayOutputStream(); // 创建ByteArrayOutputStream对象
byteArrayOutputStream.write(str.getBytes()); // 写入数据到字节数组
byteArrayOutputStream.close(); // 关闭ByteArrayOutputStream对象
byte[] byteArray = byteArrayOutputStream.toByteArray(); // 将结果转换为字节数组
DataInputStream和DataOutputStream
DataInputStream和DataOutputStream是Java提供的用于读写基本数据类型数据(如int、double等)的类,其常用的方法如下:
- readInt():读取一个int类型的数据
- readDouble():读取一个double类型的数据
- writeInt(int i):写入一个int类型的数据
- writeDouble(double d):写入一个double类型的数据
使用DataInputStream和DataOutputStream读写基本数据类型数据的一般步骤如下:
- 创建DataInputStream或DataOutputStream对象(需要传入InputStream或OutputStream对象)
- 使用DataInputStream或DataOutputStream对象中的方法读写数据
- 关闭DataInputStream或DataOutputStream对象
示例代码:
// 使用DataInputStream和DataOutputStream读写数据
File file = new File("data.dat");
DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream(file)); // 创建DataOutputStream对象
dataOutputStream.writeInt(123); // 写入一个int类型的数据
dataOutputStream.writeDouble(3.14); // 写入一个double类型的数据
dataOutputStream.close(); // 关闭DataOutputStream对象
DataInputStream dataInputStream = new DataInputStream(new FileInputStream(file)); // 创建DataInputStream对象
int i = dataInputStream.readInt(); // 读取一个int类型的数据
double d = dataInputStream.readDouble(); // 读取一个double类型的数据
dataInputStream.close(); // 关闭DataInputStream对象
BufferedInputStream和BufferedOutputStream
BufferedInputStream和BufferedOutputStream是Java提供的用于提高读写性能的高级输入输出流,其实现了数据缓冲区技术,其常用的方法如下:
- BufferedInputStream.read(byte[] b):从输入流中读取数据到byte数组
- BufferedOutputStream.write(byte[] b):将byte数组中的数据写入到输出流中
使用BufferedInputStream和BufferedOutputStream读写数据的一般步骤如下:
- 创建InputStream或OutputStream对象
- 创建BufferedInputStream或BufferedOutputStream对象(需要传入InputStream或OutputStream对象)
- 使用BufferedInputStream或BufferedOutputStream对象中的方法读写数据
- 关闭BufferedInputStream或BufferedOutputStream对象
示例代码:
// 使用BufferedInputStream和BufferedOutputStream读写数据
File file = new File("test.txt");
InputStream inputStream = new FileInputStream(file); // 创建FileInputStream对象
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); // 创建BufferedInputStream对象
OutputStream outputStream = new FileOutputStream("copy.txt"); // 创建FileOutputStream对象
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream); // 创建BufferedOutputStream对象
byte[] data = new byte[(int) file.length()];
bufferedInputStream.read(data); // 从输入流中读取数据到byte数组
bufferedOutputStream.write(data); // 将byte数组中的数据写入到输出流中
bufferedInputStream.close(); // 关闭BufferedInputStream对象
bufferedOutputStream.close(); // 关闭BufferedOutputStream对象
InputStreamReader和OutputStreamWriter
InputStreamReader和OutputStreamWriter是Java提供的用于读写字符数据(文本数据)的类,可以将字节流转换为字符流操作。其常用的方法如下:
- InputStreamReader.read(char[] cbuf):从输入流中读取数据到char数组
- OutputStreamWriter.write(char[] cbuf):将char数组中的数据写入到输出流中
使用InputStreamReader和OutputStreamWriter读写数据的一般步骤如下:
- 创建InputStream或OutputStream对象
- 创建InputStreamReader或OutputStreamWriter对象(需要传入InputStream或OutputStream对象)
- 使用InputStreamReader或OutputStreamWriter对象中的方法读写数据
- 关闭InputStreamReader或OutputStreamWriter对象
示例代码:
// 使用InputStreamReader和OutputStreamWriter读写数据
File file = new File("test.txt");
InputStream inputStream = new FileInputStream(file); // 创建FileInputStream对象
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8"); // 创建InputStreamReader对象
OutputStream outputStream = new FileOutputStream("copy.txt"); // 创建FileOutputStream对象
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8"); // 创建OutputStreamWriter对象
char[] data = new char[(int) file.length()];
inputStreamReader.read(data); // 从输入流中读取数据到char数组
outputStreamWriter.write(data); // 将char数组中的数据写入到输出流中
inputStreamReader.close(); // 关闭InputStreamReader对象
outputStreamWriter.close(); // 关闭OutputStreamWriter对象
以上就是Java处理字节的常用工具类的完整攻略,希望能对读者有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java处理字节的常用工具类 - Python技术站