日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java练气期(2)----java高级(File类与IO流)

發布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java练气期(2)----java高级(File类与IO流) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是File類

即Java文件類以抽象的方式代表文件名和目錄路徑名。該類主要用于文件和目錄的創建、文件的查找和文件的刪除等。

File類常用方法

  • delete()刪除此抽象路徑名表示的文件和目錄。
  • equals()測試此抽象路徑名與給定對象是否相等。
  • exists()測試此抽象路徑名表示的文件或目錄是否存在。
  • getName()返回由此抽象路徑名表示的文件或目錄的名稱。
  • isDirectory()測試此抽象路徑名表示的文件是否一個目錄
  • isFile()測試此抽象路徑名表示的文件是否是標準文件。
  • length()返回此抽象路徑名表示的文件長度。
  • mkdir()創建此抽象路徑名指定的目錄。

File類的高級獲取功能:?

?

  • * public String[] list():返回對象是一個字符串數組,當前哪個一盤符下的所有的文件以及文件夾的字符串名稱數組?
  • * public File[] listFiles():返回對象是一個File數組,當前哪個盤下的所有的文件以及文件夾的File數組
    ?

實例一:遞歸輸出給定目錄里的所有文件,要求分級縮進

//遞歸遍歷所有文件 public static void listFileTest(File file,int n) { //file指定目錄,n當前級別if (file != null) {if (file.isDirectory()) {System.out.println(print(n++) + file.getName());File[] files = file.listFiles() ;for (File file2 : files) {listFileTest(file2,n);}}else {System.out.println(print(n) + file.getName());} }}//分級縮進public static String print(int n) {StringBuffer s = new StringBuffer() ;s.append("|_") ;for(int i=0; i<n; i++) {s.append("__") ;}return s.toString();}

實例二:批量修改文件名

/*** 批量修改文件名* @param dest*/public static void renameToTest(File dest) { //傳入需要操作的目錄File[] f = dest.listFiles() ; //返回目錄里所有文件的File對象for(int i=0 ;i < f.length; i++) {String[] s2 = f[i].getName().split("[.]") ; //根據‘.’分割文件名與后綴名//使用新的文件名與對應的后綴名連接形成新的文件路徑String newPath = dest.getPath() + File.separatorChar + i + "." + s2[s2.length - 1] ;f[i].renameTo(new File(newPath)); //將文件名更改為新的文件名}}

實例三:遞歸刪除非空目錄

public static void main(String[] args) {// TODO Auto-generated method stubFile file = new File("d:\\aaa") ;deleteDirectory(file);System.out.println("刪除成功");}public static void deleteDirectory(File f) {if (f.length() != 0) {if (f.isDirectory()) {for (File fi : f.listFiles()) {deleteDirectory(fi);}}}f.delete() ;}

java中IO流的分類

其中,以Stream結尾的為字節流,以Writer或者Reader結尾的為字符流。所有的輸入流都是抽象類IuputStream(字節輸入流)或者抽象類Reader(字符輸入流)的子類,所有的輸出流都是抽象類OutputStream(字節輸出流)或者抽象類Writer(字符輸出流)的子類。字符流能實現的功能字節流都能實現,反之不一定。如:圖片,視頻等二進制文件,只能使用字節流讀寫

package com.lkw.test;import java.io.*; import java.text.SimpleDateFormat;public class FileDemo {public static void main(String[] args) {}/*file*/public static void testFile(String path) {File file = new File(path);if(file.exists()) {if (file.isFile()) {System.out.println("文件大小" + file.length());System.out.println("是否能寫" + file.canWrite());System.out.println("是否能讀" + file.canRead());System.out.println("是否能運行" + file.canExecute());//獲取最后的修改時間SimpleDateFormat sfm = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");//將日期轉換為要求格式String str = sfm.format(file.lastModified());} else if (file.isDirectory()) {//listFiles()方法返回當前目錄下所有的文件和目錄的絕對路徑,返回的是file數組File [] f = file.listFiles();for(File i : f)System.out.println(i);}}else {System.out.println("文件不存在");if(path.contains(".")) {try {file.createNewFile();} catch (IOException e) {e.printStackTrace();}}else {//創建目錄file.mkdirs();}}}/*字節流讀*/public static void Input(String path ) throws IOException {FileInputStream fin = new FileInputStream(path);byte[] buf = new byte[1024];int iread = 0; //讀取長度while((iread = fin.read(buf)) != -1) { //將讀取到的字節流寫入bufSystem.out.println(new String(buf));System.out.println("****************我已讀" + iread + "***************");}fin.close();//關閉流}//字節流寫public static void Output(String path) throws IOException {FileOutputStream out = new FileOutputStream(path);String string = "lkw天下第一";out.write(string.getBytes());//將字符串轉換為字節,寫入文件out.close();}public static void ReadAndWrite() throws IOException {FileInputStream fin = new FileInputStream("d:\\\\uft.txt");FileOutputStream fout = new FileOutputStream("d:\\\\www.txt");int iread;byte[] buf = new byte[200];//字節while((iread = fin.read(buf)) != -1) {fout.write(buf, 0, iread);System.out.println(new String(buf));}//字符流讀char[] x = new char[200];iread = 0;FileReader finx = new FileReader("d:\\\\uft.txt");while((iread = finx.read(x)) != -1){String str = new String(buf);System.out.println("[讀了"+iread+"]"+str.substring(0, iread));}fin.close();fout.close();} //字符流寫public static void testOut(String path,String str) throws IOException{FileWriter fr = new FileWriter(path,true);fr.write(str);fr.close();System.out.println("*******************輸出完畢!!!*********************");}}

?

?

總結

以上是生活随笔為你收集整理的java练气期(2)----java高级(File类与IO流)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。