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