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

高效的Java文件操作函数

发布时间:2023-06-05 22:10:02

Java文件操作是Java语言中非常重要的一项功能,它可以实现诸如读、写、删除、重命名文件等操作,为Java应用程序提供高效的文件管理和数据存储能力。在本文中,我将介绍一些高效的Java文件操作函数,这些函数将帮助您轻松地以最少的代码将文件操作集成到您的Java应用程序中。

1. 文件的读取和写入

Java提供了多种文件读取和写入方式,常见的有InputStream/OutputStream、FileReader/FileWriter、BufferedReader/BufferedWriter、FileInputStream/FileOutputStream 和 DataInputStream/DataOutputStream等。其中,InputStream/OutputStream是Java IO中的最基本和最常用的读写方式。

InputStream/OutputStream

InputStream/OutputStream是Java中IO的基础类,InputStream是一个抽象类,用于从输入流中读取数据,而OutputStream同样是一个抽象类,用于向输出流中写入数据。使用InputStream/OutputStream进行文件读写,可以实现高效的数据读写,可以使用如下的代码:

try(InputStream in = new FileInputStream(new File("filepath"));
OutputStream out = new FileOutputStream(new File("filepath")))
{
    byte[] buffer = new byte[1024];
    int len;
    while((len = in.read(buffer)) > 0){
        out.write(buffer, 0, len);
    }
}catch(IOException e){
    e.printStackTrace();
}

FileReader/FileWriter

FileReader/FileWriter是Java IO中用于字符读写的类,可以实现文本文件的读写。使用FileReader/FileWriter进行文件读写,可以实现高效的文本文件读写,可以使用如下的代码:

try(FileReader reader = new FileReader("filepath");
FileWriter writer = new FileWriter("filepath"))
{
    char[] buffer = new char[1024];
    int len;
    while((len = reader.read(buffer)) > 0){
        writer.write(buffer,0,len);
    }
}catch(IOException e){
    e.printStackTrace();
}

BufferedReader/BufferedWriter

BufferedReader/BufferedWriter是Java中用于带有缓冲的字符读写的类,可以实现高效的文件读写。使用BufferedReader/BufferedWriter进行文件读写,可以实现高效的文本文件读写,可以使用如下的代码:

try(BufferedReader reader = new BufferedReader(new FileReader(new File("filepath")));
BufferedWriter writer = new BufferedWriter(new FileWriter(new File("filepath"))))
{
    String line = null;
    while((line = reader.readLine()) != null){
        writer.write(line);
        writer.newLine();
    }
}catch(IOException e){
    e.printStackTrace();
}

FileInputStream/FileOutputStream

FileInputStream/FileOutputStream是Java中用于使用字节读写的类,可以实现高效的数据读写。使用FileInputStream/FileOutputStream进行文件读写,可以实现高效的字节级文件读写。可以使用如下的代码:

try(FileInputStream in = new FileInputStream(new File("filepath"));
FileOutputStream out = new FileOutputStream(new File("filepath")))
{
    byte[] buffer = new byte[1024]; 
    int length;
    while ((length = in.read(buffer)) > 0) {
      out.write(buffer, 0, length);
    }
}catch(IOException e){
    e.printStackTrace();
}

DataInputStream/DataOutputStream

DataInputStream/DataOutputStream是Java中用于进行二进制读写的类,可以实现高效的二进制文件读写。使用DataInputStream/DataOutputStream进行文件读写,可以实现高效的二进制文件读写。可以使用如下的代码:

try(DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(new File("filepath"))));
DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(new File("filepath")))))
{
    String a = in.readUTF();
    double b = in.readDouble();
    out.writeUTF(a);
    out.writeDouble(b);
}catch(IOException e){
    e.printStackTrace();
}

2. 文件信息的获取

File类提供了一些常用的方法来获取文件的信息,这些方法包括exists()、getName()、getPath()、lastModified()、length()等。

exists()

检查文件或文件夹是否存在,如果存在则返回true,否则返回false:

File file = new File("filepath");
if(file.exists()){
    System.out.println("文件存在");
}else{
    System.out.println("文件不存在");
}

getName()

获取文件名:

File file = new File("filepath");
System.out.println("文件名称:" + file.getName());

getPath()

获取文件路径:

File file = new File("filepath");
System.out.println("文件路径:" + file.getPath());

lastModified()

获取文件最后修改时间:

File file = new File("filepath");
Date date=new Date(file.lastModified());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("最后修改时间:"+sdf.format(date));

length()

获取文件大小,单位为字节数:

File file = new File("filepath");
System.out.println("文件大小 :"+file.length());

3. 文件删除和重命名

File类提供了delete()和renameTo()方法,用于删除文件和重命名文件。

delete()

删除指定的文件或文件夹:

File file = new File("filepath");
if(file.delete()){
    System.out.println("文件已删除");
}else{
    System.out.println("文件删除失败");
}

renameTo()

重命名文件或文件夹:

File oldFile = new File("oldfilepath");
File newFile = new File("newfilepath");
if(oldFile.renameTo(newFile)){
    System.out.println("文件重命名成功");
}else{
    System.out.println("文件重命名失败");
}

4. 文件的创建和更改

File类提供了createNewFile()和setLastModified()方法,用于创建文件和更改文件最后修改时间。

createNewFile()

创建新的文件,成功返回true,否则返回false:

File file = new File("filepath");
try{
    if(file.createNewFile()){
        System.out.println("文件创建成功");
    }else{
        System.out.println("文件创建失败");
    }
}catch(IOException e){
    e.printStackTrace();
}

setLastModified()

更改文件的最后修改时间:

File file = new File("filepath");
long lastModified = file.lastModified() + 1000L * 60 * 60 * 24;//改为现在时间1天的后的时间
file.setLastModified(lastModified);

总结:

在日常开发中,文件操作是经常性的任务,掌握高效的Java文件操作函数是编写高质量代码的一个重要因素。本文介绍的Java文件操作函数不仅可以帮助您快速实现文件读写、获取文件信息、文件删除和重命名、文件的创建和更改等操作,还可以提高您的编程效率和代码的可读性、可维护性,帮助您写出高质量的Java应用程序。