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的输入输出流为开发人员提供了很多灵活的数据处理方式,可应用于读写文件、网络连接、内存等场景。
