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

Java中文件处理的10个常用函数

发布时间:2023-06-24 00:15:30

Java中文件处理是Java编程中一个重要的技能点,常常需要我们对文件进行读取、写入、搜索和操作。下面列举了Java中文件处理的10个常用函数。

1. File类的构造函数

File类是Java中用来表示文件或目录的类,它与流的使用类似,需要先用构造函数来实例化。File类的构造函数支持传递文件名、目录路径及父目录等参数,例如:

File file = new File("E:/java/test.txt"); //创建一个文件
File dir = new File("E:/java"); //创建一个目录
File parentDir = new File("E:/java/parent"); //创建一个父目录
File file1 = new File(parentDir, "test1.txt"); //在父目录中创建一个文件

2. File类的常用方法

除了构造函数外,File类还提供了许多常用的文件操作方法,例如:

boolean exists() //判断文件或目录是否存在
boolean isFile() //判断是否为文件
boolean isDirectory() // 判断是否为目录
String[] list() //返回目录下所有文件/子目录的名称数组
File[] listFiles() //返回目录下所有文件/子目录的File数组
boolean delete() //删除文件或目录
boolean mkdir() //创建一个目录
boolean mkdirs() //创建一个多层目录

3. FileInputStream类和FileOutputStream类

FileInputStream类和FileOutputStream类用于读取和写入文件数据,使用时需要传入要读写的文件名或File对象,例如:

FileInputStream fis = new FileInputStream("E:/java/test.txt"); //创建一个文件输入流
FileOutputStream fos = new FileOutputStream("E:/java/test1.txt"); //创建一个文件输出流

4. BufferedReader类和BufferedWriter类

BufferedReader类和BufferedWriter类是用来读写文件数据的高效方法,使用时需要将FileReader和FileWriter对象传入,例如:

FileReader fr = new FileReader("E:/java/test.txt"); //创建一个读取文件的FileReader对象
BufferedReader br = new BufferedReader(fr); //将FileReader对象转化为BufferedReader对象
String line; 
while((line = br.readLine()) != null) { //循环读取每行数据
    System.out.println(line);
}
br.close(); //关闭读取流
FileWriter fw = new FileWriter("E:/java/test1.txt"); //创建一个写入文件的FileWriter对象
BufferedWriter bw = new BufferedWriter(fw); //将FileWriter对象转化为BufferedWriter对象
bw.write("Hello, world!"); //写入数据
bw.newLine(); //写入一个换行符
bw.flush(); //将缓存中的数据写入文件
bw.close(); //关闭写入流

5. BufferedReader类的readLine方法

BufferedReader类的readLine方法是用于读取文件数据的核心方法,可以读取文件中的一行数据,并返回一个字符串对象,例如:

BufferedReader br = new BufferedReader(new FileReader("E:/java/test.txt"));
String line;
while ((line = br.readLine()) != null) {
    System.out.println(line);
}
br.close();

6. FileWriter类和FileReader类

FileWriter类和FileReader类用于写入和读取文件数据,与FileOutputStream类和FileInputStream类不同的是,它们支持写入和读取字符数据,例如:

FileWriter fw = new FileWriter("E:/java/test.txt");
fw.write("hello,world!");
fw.close();
FileReader fr = new FileReader("E:/java/test.txt");
char[] buf = new char[1024];
int length = 0;
while ((length = fr.read(buf)) != -1) {
    System.out.println(new String(buf, 0, length));
}
fr.close();

7. RandomAccessFile类

RandomAccessFile类用于读写文件数据,与InputStream和OutputStream类不同的是,它支持随机访问文件的任意位置,例如:

RandomAccessFile raf = new RandomAccessFile("E:/java/test.txt", "rw"); //打开文件
byte[] buffer = new byte[1024];
raf.write("hello,world".getBytes()); //写入数据
raf.seek(0); //将文件指针设为文件开头
raf.read(buffer, 0, 5); //读取5个字节的数据
raf.close(); //关闭文件

8. FileReader类和InputStreamReader类

FileReader类和InputStreamReader类用于读取文件数据,与FileInputStream类不同的是,它们支持读取字符数据,例如:

FileReader fr = new FileReader("E:/java/test.txt");
int length;
char[] buffer = new char[1024];
while ((length = fr.read(buffer)) != -1) {
    System.out.println(new String(buffer, 0, length));
}
fr.close();
InputStreamReader isr = new InputStreamReader(new FileInputStream("E:/java/test.txt"));
int length;
char[] buffer = new char[1024];
while ((length = isr.read(buffer)) != -1) {
    System.out.println(new String(buffer, 0, length));
}
isr.close();

9. DataInputStream类和DataOutputStream类

DataInputStream类和DataOutputStream类用于读写Java基本数据类型(int、long、float、double等)和字符串,而不是普通的字节数据,例如:

DataOutputStream dos = new DataOutputStream(new FileOutputStream("E:/java/test.dat"));
dos.writeInt(123);
dos.writeDouble(3.14);
dos.writeUTF("Hello,world!");
dos.close();
DataInputStream dis = new DataInputStream(new FileInputStream("E:/java/test.dat"));
System.out.println(dis.readInt());
System.out.println(dis.readDouble());
System.out.println(dis.readUTF());
dis.close();

10. Properties类

Properties类用于读写配置文件,它可以从文件中读取键值对,也可以将键值对写入文件,例如:

Properties properties = new Properties();
properties.load(new FileReader("E:/java/config.properties")); //读取配置文件
System.out.println(properties.getProperty("key1")); //取出指定键的值
properties.setProperty("key2", "value2"); //添加一个键值对
properties.store(new FileWriter("E:/java/config.properties"), "This is a comment"); //保存到文件

以上是Java中文件处理的10个常用函数,掌握这些方法可以让我们更加高效地处理文件读写和操作。