程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java編程中最基本的文件和目次操作辦法詳解

Java編程中最基本的文件和目次操作辦法詳解

編輯:關於JAVA

Java編程中最基本的文件和目次操作辦法詳解。本站提示廣大學習愛好者:(Java編程中最基本的文件和目次操作辦法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java編程中最基本的文件和目次操作辦法詳解正文


文件操作

平凡常常應用JAVA對文件停止讀寫等操作,這裡匯總一下經常使用的文件操作。

1、創立文件

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、創立文件夾

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)以字節為單元讀取文件,經常使用於讀二進制文件,如圖片、聲響、影象等文件

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)以字符為單元讀取文件,經常使用於讀文本,數字等類型的文件,支撐讀取中文

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、寫文件

字符串寫入文件的幾個類中,FileWriter效力最高,BufferedOutputStream次之,FileOutputStream最差。

(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 對象創立目次,取得完全具體的能在 File 對象中挪用的和有關目次的辦法列表。

創立目次
這裡有兩個有效的文件辦法,可以或許創立目次:

mkdir( ) 辦法創立了一個目次,勝利前往 true ,創立掉敗前往 false。掉敗情形是指文件對象的途徑曾經存在了,或許沒法創立目次,由於全部途徑不存在。
mkdirs( ) 辦法創立一個目次和它的下級目次。
以下示例創立 “/ 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();
 }
}

編譯並履行以上代碼創立 “/ 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目次下可用的目次和文件,將發生以下成果:

test1.txt
test2.txt
ReadDir.java
ReadDir.class

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved