Java File類文件管理及IO讀寫、復制操作
File類的總結:
1.文件和文件夾的創建
2.文件的讀取
3.文件的寫入
4.文件的復制(字符流、字節流、處理流)
5.以圖片地址下載圖片
文件和文件夾
相關函數
(boolean) mkdir() 創建此抽象路徑名指定的目錄
(boolean) mkdirs() 創建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。
(boolean) delete() 刪除此抽象路徑名表示的文件或目錄
(boolean) createNewFile() 當不存在此路徑名指定名稱的文件時,創建一個新的空文件。
(boolean) mkdirs() 創建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。
(boolean) delete() 刪除此抽象路徑名表示的文件或目錄
(boolean) createNewFile() 當不存在此路徑名指定名稱的文件時,創建一個新的空文件。
創建文件
public static void NewFile(String pathString) { File file = new File(pathString); if (!file.exists()) { try { if (file.createNewFile()) { System.out.println("文件創建成功"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } else { System.out.println("文件已存在"); } }
創建文件夾
public static void NewFileBox(String pathString) { File file2 = new File(pathString); if (!file2.exists()) { if (file2.mkdirs()) { System.out.println("文件夾成功"); } } else { System.out.println("文件夾存在"); file2.delete();//銷毀文件 } }
應用:
public static void main(String[] args) { NewFile("test/file.txt"); NewFileBox("test/a/a/a/a"); }
Writer寫入文件
用FileWriter寫入文件
public static void ForFileWriter(String string,String fileName) { File file = new File(fileName); try { FileWriter fWriter = new FileWriter(file); fWriter.write(string); fWriter.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }
用BufferedWriter寫入文件
public static void ForBufferedWriter(String string,String desFile) { BufferedWriter bWriter = null; try { bWriter = new BufferedWriter(new FileWriter(new File(desFile))); bWriter.write(string.toString()); bWriter.close(); } catch (Exception e) { e.printStackTrace(); } }
應用:
public static void main(String[] args) { ForFileWriter("用FileWriter寫入文件", "test/writer1.txt"); ForBufferedWriter("用BufferedWriter寫入文件", "test/writer2.txt"); }
Reader讀取文件
用FileReader讀取文件
public static void testReadByReader(String fileName){ File file = new File(fileName); FileReader fis = null; try { fis = new FileReader(file); char[] arr = new char[1024 * 1000 * 6]; int len = fis.read(arr); String data = new String(arr, 0, len); fis.close(); System.out.println(fileName+"中按FileReader讀取的文件內容是:\n"+data); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
用FileInputStream讀取文件
public static void testReadByInputStream(String fileName){ File file = new File(fileName); FileInputStream fis = null; try { fis = new FileInputStream(file); byte[] arr = new byte[1024 * 1000 * 6]; int len = fis.read(arr); String data = new String(arr, 0, len); fis.close(); System.out.println(fileName+"中按FileInputStream讀取的文件內容是:\n"+data); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
用BufferedReader讀取文件
public static void testReadByBufferedReader(String fileName) { BufferedReader bReader = null; String line = null; StringBuffer buffer = new StringBuffer(); try { bReader =new BufferedReader(new FileReader(new File(fileName))); while ((line = bReader.readLine())!=null) { buffer.append(line).append("\n"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } System.out.println(fileName+"中按BufferedReader讀取的文件內容是:\n"+buffer.toString()); }
應用:
public static void main(String[] args) { testReadByInputStream("res/我.txt"); testReadByReader("res/我.txt"); testReadByBufferedReader("res/我.txt"); }
文件的復制操作
字符流復制
public static void FileCopy1(String readfile,String writeFile) { try { FileReader input = new FileReader(readfile); FileWriter output = new FileWriter(writeFile); int read = input.read(); while ( read != -1 ) { output.write(read); read = input.read(); } input.close(); output.close(); } catch (IOException e) { System.out.println(e); } }
字節流復制
public static void FileCopy2(String readfile,String writeFile) { try { FileInputStream input = new FileInputStream(readfile); FileOutputStream output = new FileOutputStream(writeFile); int read = input.read(); while ( read != -1 ) { output.write(read); read = input.read(); } input.close(); output.close(); } catch (IOException e) { System.out.println(e); } }
處理流復制
public static void FileCopy3(String readfile,String writeFile) { BufferedReader bReader = null; BufferedWriter bWriter = null; String line = null; try { bReader = new BufferedReader(new FileReader(new File(readfile))); bWriter = new BufferedWriter(new FileWriter(new File(writeFile))); while ((line = bReader.readLine())!=null) { bWriter.write(line); bWriter.newLine(); } bWriter.close(); bReader.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }
應用:
public static void main(String[] args) { FileCopy1("res/我.txt", "test/1.txt"); FileCopy2("res/我.txt", "test/2.txt"); FileCopy3("res/我.txt", "test/3.txt"); FileCopy2("res/me.jpg", "test/33.jpg"); }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!