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

Java中的文件操作函数和相关API介绍

发布时间:2023-06-06 11:23:02

Java是一种面向对象、跨平台的编程语言,由于Java非常灵活,因此在进行文件操作时,Java也提供了非常丰富的函数和相关API支持。本篇文章将对Java中的文件操作函数和相关API进行介绍,帮助读者更好地理解Java文件操作的相关知识。

1. File类

File类实例可以代表文件或目录,在Java中,可以使用File类实现文件操作。File类提供了很多有用的方法,例如:

● **File.exists()** - 判断指定的文件或目录是否存在。

● **File.isDirectory()** - 如果这个File实例是一个目录,则返回true。

● **File.isFile()** - 如果这个File实例是一个普通文件,则返回true。

● **File.isHidden()** - 如果这个File实例是隐藏文件,则返回true。

● **File.length()** - 如果这个File实例表示一个文件,则返回文件的大小(以字节为单位)。

● **File.getName()** - 返回这个File实例的文件或目录名。

● **File.getAbsolutePath()** - 返回这个File实例的绝对路径。

● **File.getParentFile()** - 返回这个File实例的父文件夹。

2. FileInputStream和FileOutputStream

FileInputStream和FileOutputStream是Java中最常用的文件输入输出类。FileInputStream类用于打开和读取文件,而FileOutputStream类用于创建和输出到文件。这两个类使用方式相似,通过构造函数来打开或创建文件,然后使用read()和write()函数来读取和写入文件。例如:

import java.io.*;

public class FileInputOutputStream {
public static void main(String[] args) throws Exception {
    FileInputStream fis = null;
    FileOutputStream fos = null;
    try {
        fis = new FileInputStream("input.txt");
        fos = new FileOutputStream("output.txt");
        int c;
        while ((c = fis.read()) != -1) {
            fos.write(c);
        }
    }
    finally {
        if (fis != null) {
            fis.close();
        }
        if (fos != null) {
            fos.close();
        }
    }
}
}

3. RandomAccessFile

RandomAccessFile类是一种文件方式,它允许非顺序的、随机访问文件的内容。通过这个类,可以设置文件指针,随机访问文件中的任何数据。例如,下面的代码展示了如何使用RandomAccessFile从文件中读取偏移量为100的字节:

import java.io.*;

public class RandomAccessFileDemo {
public static void main(String[] args) throws Exception {
    RandomAccessFile raf = null;
    try {
        raf = new RandomAccessFile("input.txt", "r");
        raf.seek(100);
        byte[] buffer = new byte[1024];
        int bytesRead = raf.read(buffer);
        while (bytesRead != -1) {
            System.out.println(new String(buffer, 0, bytesRead));
            bytesRead = raf.read(buffer);
        }
    }
    finally {
        if (raf != null) {
            raf.close();
        }
    }
}
}

4. BufferedReader和BufferedWriter

BufferedReader和BufferedWriter是Java中提供的高级I/O类。BufferedReader类提供了readLine()函数,可以方便地读取一行文本,而不需要手动解析文件。BufferedWriter类提供了write()函数,可以写入多行文本,将数据缓存在内存中,一次性写入文件,提高效率。例如:

import java.io.*;

public class BufferedReaderWriterDemo {
public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new FileReader("input.txt"));
    BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"));
    String s;
    while ((s = br.readLine()) != null) {
        bw.write(s);
        bw.newLine();
    }
    br.close();
    bw.close();
}
}

5. Scanner类

Scanner类用于读取用户输入或文件内容,其接口提供了许多方法来读取各种数据类型。Scanner类采用正则表达式分割符,更容易处理由空格、逗号等符号隔开的数据。例如,下面的代码演示了如何使用Scanner从标准输入读取数据:

import java.util.Scanner;

public class ScannerDemo {
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.print("Enter your name: ");
    String name = scanner.nextLine();
    System.out.print("Enter your age: ");
    int age = scanner.nextInt();
    System.out.printf("Name: %s, Age: %d%n", name, age);
}
}

总结:

这篇文章介绍了Java中的文件操作函数和相关API。对于初学者来说,学会了这些API后,可以轻松地进行文件读取、写入、复制、删除等操作。在编写应用程序时,我们需要谨记文件操作的安全性。有时候,为了确保程序的稳定性,不能完全依赖Java API提供的函数,还需要进行安全性检查和异常处理。