欢迎访问宙启技术站
智能推送

Java输入输出流函数及应用

发布时间:2023-06-11 05:00:55

Java中的输入输出流(I/O流)是用来处理数据输入和输出的功能。在Java程序中,输入输出流的对象用于读写文件和网络连接等。

Java中的I/O流主要有四个类,分别是InputStream、OutputStream、Reader、Writer,其中InputStream和OutputStream是二进制帮助输入输出,Reader和Writer则用于文本帮助输入输出。

以下是Java I/O流中的一些常用函数及其应用:

1. FileInputStream和FileOutputStream

用于读取和写入二进制文件或字节流。

以读文件为例:

FileInputStream fileInputStream = new FileInputStream("test.txt");//打开文件输入流

int c; 
while ((c = fileInputStream.read()) != -1) {//-1表示文件读完了
    System.out.print((char) c); //将数据转换成字符并打印
}
fileInputStream.close(); //关闭文件输入流

以写文件为例:

FileOutputStream fileOutputStream = new FileOutputStream("test.txt");//打开文件输出流

String str = "hello world";
byte[] bytes = str.getBytes(); //将String转换为byte类型的数组
fileOutputStream.write(bytes); //写入文件
fileOutputStream.close(); //关闭文件输出流

2. BufferedReader和BufferedWriter

用于读取或写入文本文件。

以读文件为例:

FileReader fileReader = new FileReader("test.txt");//打开文件读取流
BufferedReader bufferedReader = new BufferedReader(fileReader);//打开缓冲流

String line;
while ((line = bufferedReader.readLine()) != null) {//每次读取一行,直到没有数据
    System.out.println(line);//打印每一行的内容
}
bufferedReader.close();//关闭缓冲流
fileReader.close();//关闭文件读取流

以写文件为例:

FileWriter fileWriter = new FileWriter("test.txt");//打开文件写入流
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);//打开缓冲流

String str = "hello world";
bufferedWriter.write(str);//写入字符串
bufferedWriter.newLine();//换行
bufferedWriter.close();//关闭缓冲流
fileWriter.close(); //关闭文件写入流

3. ByteArrayInputStream和ByteArrayOutputStream

用于读取和写入内存中的二进制数据。

以读取内存为例:

byte[] bytes = {65, 66, 67, 68, 69};//定义byte数组
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);//打开字节数组输入流

int i;
while ((i = byteArrayInputStream.read()) != -1) {//读取字节
    System.out.print((char) i); //将数据转换为字符并打印
}
byteArrayInputStream.close(); //关闭字节数组输入流

以写入内存为例:

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();//打开字节数组输出流

String str = "hello world";
byte[] bytes = str.getBytes();
byteArrayOutputStream.write(bytes);//写入内存

byte[] result = byteArrayOutputStream.toByteArray();//将输出流里的数据转换成byte[]
System.out.println(new String(result));//将byte[]转换成String并打印

byteArrayOutputStream.close();//关闭字节数组输出流

总之,Java的输入输出流为开发人员提供了很多灵活的数据处理方式,可应用于读写文件、网络连接、内存等场景。