Java中的IO函数:快速实现文件读写!
Java是目前应用较广的编程语言之一,也是大多数企业级应用程序的首选。Java提供了许多IO函数,这些函数可以帮助我们快速实现文件的读写操作,节省了我们大量的时间和精力。
Java IO分为两类:字节流和字符流。字节流操作的是字节流二进制数据,而字符流操作的则是字符数据。其中字节流基于InputStream和OutputStream,字符流则基于Reader和Writer。下面就让我们来了解一下Java中常用的IO函数。
一、字节流读写
字节流读写是指通过Java的InputStream和OutputStream实现对二进制文件的读写。InputStream和OutputStream可以帮助我们在程序中打开、写入、读取和关闭文件。下面是一些常用的读写字节流的函数。
1. FileInputStream和FileOutputStream
FileInputStream和FileOutputStream是最常用的读写字节流函数,它们可以分别打开、读写二进制文件。FileInputStream可以用来打开一个文件并返回一个InputStream对象,而FileOutputStream则可以用来打开一个文件并返回一个OutputStream对象。下面是一个简单的例子。
FileInputStream inputStream = null;
FileOutputStream outputStream = null;
try {
inputStream = new FileInputStream("example.txt");
outputStream = new FileOutputStream("example2.txt");
int data;
while ((data = inputStream.read()) != -1) {
outputStream.write(data);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. DataInputStream和DataOutputStream
DataInputStream和DataOutputStream是基于InputStream和OutputStream的,它们可以帮助我们读写基本数据类型,如int、double、boolean等。下面是一个示例。
try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("example.dat"));
DataInputStream dis = new DataInputStream(new FileInputStream("example.dat"))) {
dos.writeInt(7);
dos.writeDouble(6.0);
dos.writeBoolean(true);
System.out.println(dis.readInt());
System.out.println(dis.readDouble());
System.out.println(dis.readBoolean());
} catch (IOException e) {
e.printStackTrace();
}
3. BufferedInputStream和BufferedOutputStream
BufferedInputStream和BufferedOutputStream是可以优化字节流的读写效率的函数,它们可以帮助我们在写入和读取时缓存数据。下面是一个简单的例子。
try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("example.txt"))) {
String str = "hello world!";
bos.write(str.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream("example.txt"))) {
byte[] b = new byte[1024];
int len;
while ((len = bis.read(b)) != -1) {
System.out.println(new String(b, 0, len));
}
} catch (IOException e) {
e.printStackTrace();
}
二、字符流读写
字符流读写是指通过Java的Reader和Writer实现对字符数据的读写。Java中的字符集统一采用Unicode格式。下面是一些常用的读写字符流的函数。
1. FileReader和FileWriter
FileReader和FileWriter是最常用的读写字符流的函数,它们可以分别打开、写入、读取和关闭字符数据。FileReader和FileWriter会自动处理字符集转换的问题。下面是一个简单的例子。
try (FileWriter writer = new FileWriter("example.txt")) {
String str = "hello world!";
writer.write(str);
} catch (IOException e) {
e.printStackTrace();
}
try (FileReader reader = new FileReader("example.txt")) {
char[] b = new char[1024];
int len;
while ((len = reader.read(b)) != -1) {
System.out.println(new String(b, 0, len));
}
} catch (IOException e) {
e.printStackTrace();
}
2. BufferedReader和BufferedWriter
BufferedReader和BufferedWriter是可以优化字符流的读写效率的函数,它们可以帮助我们在写入和读取时缓存数据。下面是一个简单的例子。
try (BufferedWriter bw = new BufferedWriter(new FileWriter("example.txt"))) {
String str = "hello world!";
bw.write(str);
} catch (IOException e) {
e.printStackTrace();
}
try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
三、总结
本文介绍了Java IO函数中常用的读写字节流和字符流函数。通过学习这些函数,我们可以更加高效地实现文件的读写操作,提高我们的编程效率。
