Java中的文件处理

时间:2020-02-23 14:36:13  来源:igfitidea点击:

Java中的文件处理属于IO操作。
Java IO软件包java.io类是专门为Java中的文件处理提供的。

Java中的文件处理

一些常见的文件处理操作是:

  • 建立档案
  • 删除文件
  • 读取档案
  • 写文件
  • 更改文件权限

让我们通过java程序示例研究这些文件处理操作中的每一个。

建立档案

我们可以使用File类的createNewFile()方法来创建新文件。
如果成功创建文件,则此方法返回true,否则返回false。
下面是一个简单的程序,显示了如何在Java中创建新文件。

package com.theitroad.files;

import java.io.File;
import java.io.IOException;

public class FileHandling {

	public static void main(String[] args) {
		File file = new File("data.txt");
		try {
			boolean createNewFile = file.createNewFile();
			System.out.println("File Created = "+createNewFile);
		} catch (IOException e) {
			//TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

上图显示了第一次运行时产生的输出,在随后的执行中,文件将存在,因此createNewFile将返回false。

有一些与绝对路径和相对路径相关的规则,请在java create new file中阅读有关规则。

删除文件

文件类删除方法用于删除文件或者空目录。
以下是删除文件的简单示例。

package com.theitroad.files;

import java.io.File;

public class FileHandling {

	public static void main(String[] args) {
		File file = new File("data.txt");
		boolean delete = file.delete();
		System.out.println("File deleted = " + delete);
	}
}

如果文件删除成功,则文件删除方法返回true,否则返回false。

扩展阅读:Java删除文件

读取档案

有很多方法可以读取Java文件。
我们可以使用BufferedReader,FileReader或者Files类。
下面的代码段是逐行读取文件。

File file = new File("data.txt");
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, cs);
BufferedReader br = new BufferedReader(isr);

String line;
while((line = br.readLine()) != null){
  //process the line
  System.out.println(line);
}
br.close();

对于其他所有读取文件的方式,请转到Java读取文件。

写文件

我们可以使用FileWriter,BufferedWriter,Files或者FileOutputStream在Java中写入文件。
下面的代码片段使用Stream将数据写入文件。

OutputStream os = null;
try {
  os = new FileOutputStream(new File("/Users/hyman/os.txt"));
  os.write(data.getBytes(), 0, data.length());
} catch (IOException e) {
  e.printStackTrace();
}finally{
  try {
      os.close();
  } catch (IOException e) {
      e.printStackTrace();
  }
}

有关其他类的完整示例,请参阅Java写入文件。

更改文件权限

文件类提供了获取和更改文件许可权详细信息的方法。
下面的代码段显示了如何读取文件权限并进行更改。

File file = new File("/Users/hyman/run.sh");

//check file permissions for application user
System.out.println("File is readable? "+file.canRead());
System.out.println("File is writable? "+file.canWrite());
System.out.println("File is executable? "+file.canExecute());

//change file permissions for application user only
file.setReadable(false);
file.setWritable(false);
file.setExecutable(false);

//change file permissions for other users also
file.setReadable(true, false);
file.setWritable(true, false);
file.setExecutable(true, true);

但是,如果您使用的是Java 7或者更高版本,则应使用提供更多选项的PosixFilePermission

//using PosixFilePermission to set file permissions 777
Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
//add owners permission
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_EXECUTE);
//add group permissions
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_WRITE);
perms.add(PosixFilePermission.GROUP_EXECUTE);
//add others permissions
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.OTHERS_EXECUTE);

Files.setPosixFilePermissions(Paths.get("/Users/hyman/run.sh"), perms);