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);

