国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java編程中最基礎(chǔ)的文件和目錄操作方法詳解

2019-11-26 14:50:55
字體:
供稿:網(wǎng)友

文件操作

平常經(jīng)常使用JAVA對文件進(jìn)行讀寫等操作,這里匯總一下常用的文件操作。

1、創(chuàng)建文件

public static boolean createFile(String filePath){   boolean result = false;   File file = new File(filePath);   if(!file.exists()){     try {       result = file.createNewFile();     } catch (IOException e) {       e.printStackTrace();     }   }      return result; } 

2、創(chuàng)建文件夾

public static boolean createDirectory(String directory){   boolean result = false;   File file = new File(directory);   if(!file.exists()){     result = file.mkdirs();   }      return result; } 

3、刪除文件

public static boolean deleteFile(String filePath){   boolean result = false;   File file = new File(filePath);   if(file.exists() && file.isFile()){     result = file.delete();   }      return result; } 

4、刪除文件夾

遞歸刪除文件夾下面的子文件和文件夾

public static void deleteDirectory(String filePath){   File file = new File(filePath);   if(!file.exists()){     return;   }      if(file.isFile()){     file.delete();   }else if(file.isDirectory()){     File[] files = file.listFiles();     for (File myfile : files) {       deleteDirectory(filePath + "/" + myfile.getName());     }          file.delete();   } } 

5、讀文件

(1)以字節(jié)為單位讀取文件,常用于讀二進(jìn)制文件,如圖片、聲音、影像等文件

public static String readFileByBytes(String filePath){   File file = new File(filePath);   if(!file.exists() || !file.isFile()){     return null;   }      StringBuffer content = new StringBuffer();      try {     byte[] temp = new byte[1024];     FileInputStream fileInputStream = new FileInputStream(file);     while(fileInputStream.read(temp) != -1){       content.append(new String(temp));       temp = new byte[1024];     }          fileInputStream.close();   } catch (FileNotFoundException e) {     e.printStackTrace();   } catch (IOException e) {     e.printStackTrace();   }      return content.toString(); } 

 (2)以字符為單位讀取文件,常用于讀文本,數(shù)字等類型的文件,支持讀取中文

public static String readFileByChars(String filePath){   File file = new File(filePath);   if(!file.exists() || !file.isFile()){     return null;   }      StringBuffer content = new StringBuffer();   try {     char[] temp = new char[1024];     FileInputStream fileInputStream = new FileInputStream(file);     InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "GBK");     while(inputStreamReader.read(temp) != -1){       content.append(new String(temp));       temp = new char[1024];     }          fileInputStream.close();     inputStreamReader.close();   } catch (FileNotFoundException e) {     e.printStackTrace();   } catch (IOException e) {     e.printStackTrace();   }      return content.toString(); } 

(3)以行為單位讀取文件,常用于讀面向行的格式化文件

public static List<String> readFileByLines(String filePath){   File file = new File(filePath);   if(!file.exists() || !file.isFile()){     return null;   }      List<String> content = new ArrayList<String>();   try {     FileInputStream fileInputStream = new FileInputStream(file);     InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "GBK");     BufferedReader reader = new BufferedReader(inputStreamReader);     String lineContent = "";     while ((lineContent = reader.readLine()) != null) {       content.add(lineContent);       System.out.println(lineContent);     }          fileInputStream.close();     inputStreamReader.close();     reader.close();   } catch (FileNotFoundException e) {     e.printStackTrace();   } catch (IOException e) {     e.printStackTrace();   }      return content; } 

6、寫文件

字符串寫入文件的幾個類中,F(xiàn)ileWriter效率最高,BufferedOutputStream次之,F(xiàn)ileOutputStream最差。

(1)通過FileOutputStream寫入文件

public static void writeFileByFileOutputStream(String filePath, String content) throws IOException{   File file = new File(filePath);   synchronized (file) {     FileOutputStream fos = new FileOutputStream(filePath);     fos.write(content.getBytes("GBK"));     fos.close();   } } 

(2)通過BufferedOutputStream寫入文件

public static void writeFileByBufferedOutputStream(String filePath, String content) throws IOException{   File file = new File(filePath);   synchronized (file) {     BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream(filePath));     fos.write(content.getBytes("GBK"));     fos.flush();     fos.close();   } } 

(3)通過FileWriter將字符串寫入文件

public static void writeFileByFileWriter(String filePath, String content) throws IOException{     File file = new File(filePath);     synchronized (file) {       FileWriter fw = new FileWriter(filePath);       fw.write(content);       fw.close();     }   } 

目錄操作
目錄是一個文件可以包含其他文件和目錄的列表。你想要在目錄中列出可用文件列表,可以通過使用 File 對象創(chuàng)建目錄,獲得完整詳細(xì)的能在 File 對象中調(diào)用的以及有關(guān)目錄的方法列表。

創(chuàng)建目錄
這里有兩個有用的文件方法,能夠創(chuàng)建目錄:

mkdir( ) 方法創(chuàng)建了一個目錄,成功返回 true ,創(chuàng)建失敗返回 false。失敗情況是指文件對象的路徑已經(jīng)存在了,或者無法創(chuàng)建目錄,因為整個路徑不存在。
mkdirs( ) 方法創(chuàng)建一個目錄和它的上級目錄。
以下示例創(chuàng)建 “/ tmp / user / java / bin” 目錄:

import java.io.File;public class CreateDir {  public static void main(String args[]) {   String dirname = "/tmp/user/java/bin";   File d = new File(dirname);   // Create directory now.   d.mkdirs(); }}

編譯并執(zhí)行以上代碼創(chuàng)建 “/ tmp /user/ java / bin”。

提示:Java 自動按 UNIX 和 Windows 約定來處理路徑分隔符。如果在 Windows 版本的 Java 中使用正斜杠(/),仍然可以得到正確的路徑。

目錄列表
如下,你能夠用 File 對象提供的 list() 方法來列出目錄中所有可用的文件和目錄

import java.io.File;public class ReadDir {  public static void main(String[] args) {   File file = null;   String[] paths;   try{        // create new file object     file = new File("/tmp");     // array of files and directory     paths = file.list();     // for each name in the path array     for(String path:paths)     {      // prints filename and directory name      System.out.println(path);     }   }catch(Exception e){     // if any error occurs     e.printStackTrace();   }  }}

基于你/ tmp目錄下可用的目錄和文件,將產(chǎn)生以下結(jié)果:

test1.txttest2.txtReadDir.javaReadDir.class

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 公主岭市| 赤城县| 澜沧| 清水河县| 泗阳县| 肥乡县| 永仁县| 镇宁| 鹿泉市| 九江县| 鄱阳县| 昌都县| 海原县| 云南省| 若尔盖县| 海南省| 榕江县| 扶绥县| 五常市| 西青区| 阜康市| 湛江市| 双辽市| 山阳县| 湖州市| 弥渡县| 韩城市| 开鲁县| 玉环县| 鹰潭市| 丽水市| 建昌县| 阿鲁科尔沁旗| 绵竹市| 宁明县| 临桂县| 武汉市| 敦化市| 乳源| 永兴县| 隆子县|