Java中文件处理的10个常用函数
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个常用函数,掌握这些方法可以让我们更加高效地处理文件读写和操作。
