Java中的IO函数:FileInputStream、BufferedReader等
Java中的IO函数主要有两类,一种是字节流(InputStream和OutputStream),另一种是字符流(Reader和Writer)。这两种流的操作对象都是文件或内存中的数据。
FileInputStream是一种字节流,用于读取文件中的数据。使用该函数需要先将文件路径传入File类的构造函数,如下所示:
File file = new File("file.txt");
FileInputStream fis = new FileInputStream(file);
可以使用read方法一次读取一个字节,也可以一次读取多个字节到一个byte数组中,如下所示:
int b;
while ((b=fis.read())!=-1){
System.out.print((char) b);
}
byte[] buffer = new byte[1024];
int len;
while ((len=fis.read(buffer))!=-1){
System.out.print(new String(buffer,0,len));
}
BufferedReader是一种字符流,用于按行读取文件中的数据。使用该函数需要将FileInputStream对象包装成一个InputStreamReader对象,并将其传入BufferedReader的构造函数。如下所示:
File file = new File("file.txt");
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
可以使用readLine方法一次读取一行数据,如下所示:
String line;
while ((line=br.readLine())!=null){
System.out.println(line);
}
另外还有一个常用的类PrintWriter,用于将数据写入文件。和BufferedReader一样,也需要将FileOutputStream对象包装成一个OutputStreamWriter对象,并将其传入PrintWriter的构造函数。如下所示:
File file = new File("file.txt");
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
PrintWriter pw = new PrintWriter(osw);
可以使用print和println方法写入数据,如下所示:
pw.println("Hello World!");
pw.close();
除了以上提到的函数外,Java中还有很多其他的IO函数,如ByteArrayInputStream、ByteArrayOutputStream、ObjectInputStream、ObjectOutputStream等,它们也都是用于处理数据流的函数,并且都有它们各自的应用场景。在实际开发中,需要根据具体的业务需要选择合适的IO函数。
