java7中的文件和目錄管理的簡單介紹

本文目錄一覽:

JAVA7如何遍歷一個目錄下的所有文件,如何知

1.遍曆本目錄下所有的文件(不包括目錄的目錄里的文件)

import java.io.File;public class main { public static void main(String[] args) { String path = “D:\\JAVA”; //要遍歷的路徑 File file = new File(path); //獲取其file對象 File[] fs = file.listFiles(); //遍歷path下的文件和目錄,放在File數組中 for(File f:fs){ //遍歷File[]數組 if(!f.isDirectory()) //若非目錄(即文件),則打印 System.out.println(f); } }}

運行結果:

打印出 D:/JAVA下的全部文件(包括D:/JAVA下的目錄下的文件)

1.遍曆本目錄下所有的文件(包括目錄的目錄里的文件)

import java.io.File;import java.io.FileFilter;public class FileText { public static void main(String[] args) { String path = “D:\\JAVA”; //要遍歷的路徑 File file = new File(path); //獲取其file對象 func(file); } private static void func(File file){ File[] fs = file.listFiles(); for(File f:fs){ if(f.isDirectory()) //若是目錄,則遞歸打印該目錄下的文件 func(f); if(f.isFile()) //若是文件,直接打印 System.out.println(f); } }}

打印結果:

打印所有文件

java網絡應用的文件目錄結構

如果你用TOMCAT的話,那下面的信息很適合你:

一、TOMCAT的目錄結構

/bin:存放windows或Linux平台上啟動和關閉Tomcat的腳本文件

/conf:存放Tomcat服務器的各種全局配置文件,其中最重要的是server.xml和web.xml

/doc:存放Tomcat文檔

/server:包含三個子目錄:classes、lib和webapps

/server/lib:存放Tomcat服務器所需的各種JAR文件

/server/webapps:存放Tomcat自帶的兩個WEB應用admin應用和 manager應用

/common/lib:存放Tomcat服務器以及所有web應用都可以訪問的jar文件

/shared/lib:存放所有web應用都可以訪問的jar文件(但是不能被Tomcat服務器訪問)

/logs:存放Tomcat執行時的日誌文件

/src:存放Tomcat的源代碼

/webapps:Tomcat的主要Web發佈目錄,默認情況下把Web應用文件放於此目錄

/work:存放JSP編譯後產生的class文件

二、WEB應用的目錄結構:假設在$CATALINA_HOME/webapps下有helloapp的web應用

/helloapp:Web應用的根目錄,所有的jsp文件和html文件都在此目錄下

/helloapp/WEB_INF:存放該web應用發佈時的描述文件web.xml

/helloapp/WEB_INF/class:存放各種class文件,Servlet文件也存放於此目錄下

/helloapp/WEB_INF/lib:存放各鍾Web應用所需要的jar文件。比如可以存放JDBC驅動程序的JAR文件

三、Tomcat加載類和資源的順序為(以helloapp應用為例):

1、helloapp (/webapps/helloapp/Web-INF/下的classes,lib子目錄中*.calss及*.jar,僅helloapp可以加載)

2、Bootstrap ($JAVA_HOME/jre/lib/ext/*.jar)

3、System ($CLASSPATH/*.class和CLASSPATH中指定的jar)

4、Common ($CATALINA_HOME/common/下的classes,lib,endores子目錄中*.class及*.jar)

5、Catalina ($CATALINA_HOME/server/下的classes,lib子目錄中*.calss及*.jar,僅Tomcat可以加載)

6、Shared ($CATALINA_HOME/shared/下的classes,lib子目錄中*.calss及*.jar,僅所有Web應用可以加載)

四、$CATALINA_HOME/conf/server.xml配置簡介

1、Server元素屬性

port:指定一個端口,這個端口負責監聽關閉tomcat的請求

shutdown:指定向端口發送的命令字符串,通常是「SHUTDOWN」

2、Service元素屬性

name:指定service的名字,通常是」Catalina」

3、Connector/元素屬性(表示客戶端和service之間的連接):

port:指定服務器端要創建的端口號,並使用這個斷口監聽來自客戶端的請求

minProcessors(考察是否有此屬性):服務器端啟動時創建的處理請求的線程數

maxProcessors(考察是否有此屬性):最大可以創建的處理請求的線程數

maxThreads:服務器創建的最大線程數

minSpareThreads:最小剩餘線程數

maxSpareThreads:最大剩餘線程數

enableLookups:如果為true,則可以通過調用request.getRemoteHost()進行DNS查詢來得到遠程客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其IP地址

redirectPort:指定當服務器正在處理HTTP請求時收到了一個SSL傳輸請求後重定向的端口號

acceptCount:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過的請求將不予處理

connectionTimeout:指定超時的時間數(以毫秒為單位)

disableUploadTimeout:不明

debug:不明

protocol:不明

4、Engine元素屬性(指定service中的請求處理主機,接收和處理來自Connector的請求)

name:指定Engine的名字,通常是」Catalina」

defaultHost:指定默認的處理請求的主機名,至少與某個host元素的name屬性值是相同的

5、Context/元素屬性(表示一個web應用程序)

docBase:指定此Web應用的絕對或相對路徑,也可以為WAR文件的路徑

path:表示此Web應用程序的url的入口,如為「/hello「,則請求的URL為

reloadable:如果為true,則Tomcat在運行時會自動監視Web應用的/WEB-INF/lib和/WEB-INF/classes下文件的改動,自動裝載新應用,使我們可以在不重啟Tomcat的情況下更新Web應用

6、Host元素屬性(表示一個虛擬主機)

name:指定虛擬主機名字

debug:指定日誌級別

appBase:存放Web應用程序的基本目錄,可以是絕對路徑或相對於$CATALINA_HOME的目錄,默認是$CATALINA_HOME/webapps

unpackWARs:如果為true,則tomcat會自動將WAR文件解壓後運行,否則不解壓而直接從WAR文件中運行應用程序

autoDeploy:如果為true,表示Tomcat啟動時會自動發佈appBase目錄下所有的Web應用(包括新加入的Web應用)

deployOnStarup:如果此項為true,表示Tomcat服務器啟動時會自動發佈appBase目錄下所有Web應用。如果Web應用在server.xml中沒有相應的Context元素,則將採用默認的Context配置。deployOnStarup的默認設置是true

alias:指定虛擬主機的別名,可以指定多個別名

xmlValidation:不明

xmlNamespaceAware:不明

7、Logger/元素屬性(表示日誌,調試和錯誤信息)

className:指定logger使用的類名,此類必須實現org.apache.catalina.Logger 接口

prefix:指定log文件名的前綴(文件名)

suffix:指定log文件名的後綴(擴展名)

timestamp:如果為true,則log文件名中會加入日期時間,如下例:localhost_log.2006-10-04.txt

directory:指定log文件存放的目錄

8、Realm/元素屬性(表示存放用戶名,密碼及role的數據庫)

className:指定Realm使用的類名,此類必須實現org.apache.catalina.Realm接口

resourceName:不明

9、Valve/元素屬性(功能與Logger相似,其prefix和suffix屬性解釋和Logger 中的一樣)

className:指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve類可以記錄應用程序的訪問信息

directory:指定log文件存放的位置

pattern:有兩個值,common方式記錄遠程主機名或ip地址、用戶名、日期、第一行請求的字符串、HTTP響應代碼、發送的位元組數。combined方式比common方式記錄的值還多

安裝java7後,安裝目錄下沒有java文件夾

java文件這個是自定義安裝路徑文件夾,不是默認安裝的路徑文件夾,所以沒有也是沒問題的(從jdk路徑才算是java安裝的真實路徑)。

如:jdk安裝在「D:\Program Files\jdk1.6.0_10」

第一步:新建「java_home」值,輸入「D:\Program Files\jdk1.6.0_10」;

第二步:新建「classpath」值,輸入「.;%java_home%\lib」;

第三步:在path中增加「%java_home%\bin」;

備註:配置環境變量在「計算機」右擊「屬性」,之後選擇「高級環境變量」,在選擇「環境變量」即可。

在Java 7中如何對文件進行操作

1.創建文件

2.刪除文件

3.複製文件

4.文件移動/改名

這文件是以對Java7里提供的新的Path類很熟悉為前提,如果不熟悉這個類,Path 是文件系統里對位置的一個邏輯概念,例如 c: 和 ../foobar.txt 都是Path。

5.創建和刪除文件

下面的代碼片段展示的是用 Files.createFile(Path target) 方法創建文件的基本用法。

Path target = Paths.get(“D:\Backup\MyStuff.txt”); Path file = Files.createFile(target);

很多時候,出於安全的原因,可能希望在創建的文件上設置一下屬性,例如:是否可讀/可寫/寫執行。這些屬性依賴於文件系統的種類,需要使用跟文件系統相應的權限輔助類來完成這種操作。例如,PosixFilePermission和PosixFilePermissions 為 POSIX 文件系統設計的。下面的是在POSIX文件系統上的文件設置讀寫權限的用法。

Path target = Paths.get(“D:\Backup\MyStuff.txt”); SetPosixFilePermission perms= PosixFilePermissions.fromString(“rw-rw-rw-“); FileAttributeSetPosixFilePermission attr= PosixFilePermissions.asFileAttribute(perms); Files.createFile(target, attr);

這個 java.nio.file.attribute 包里提供了很多關於 FilePermission 的類。

警告 當創建一個帶有權限屬性的文件時,請注意包含這個文件的文件夾是否有權限的強制約束。例如,會發現,由於這些限制,儘管給創建的文件指定了 rw-rw-rw 權限,實際創建的結果卻是 rw-r–r– 。

6.刪除文件,使用 Files.delete(Path) 這個方法。

Path target = Paths.get(“D:\Backup\MyStuff.txt”); Files.delete(target);

拷貝和移動文件

下面的代碼向展示的是使用 Files.copy(Path source, Path target) 方法做文件拷貝的基本用法。

Path source = Paths.get(“C:\My Documents\Stuff.txt”); Path target = Paths.get(“D:\Backup\MyStuff.txt”); Files.copy(source, target);

經常的,在拷貝文件的過程中可能希望指定一些操作設置。在Java7里,可以通過使用 StandardCopyOption enum 來設置這些屬性。下面看一個例子。

import static java.nio.file.StandardCopyOption.*;Path source = Paths.get(“C:\My Documents\Stuff.txt”);Path target = Paths.get(“D:\Backup\MyStuff.txt”);Files.copy(source, target, REPLACE_EXISTING);

拷貝操作時可以使用的屬性還包括COPY_ATTRIBUTES (保留文件屬性) 和 ATOMIC_MOVE (確保移動事務操作的成功,否則進行回滾)。

移動文件的操作跟拷貝很相似,使用 Files.move(Path source, Path target) 方法。

同樣,也可以指定移動操作的屬性,使用 Files.move(Path source, Path target, CopyOptions…) 方法里的參數來設置。

import static java.nio.file.StandardCopyOption.*; Path source = Paths.get(“C:\My Documents\Stuff.txt”); Path target = Paths.get(“D:\Backup\MyStuff.txt”); Files.move(source, target, REPLACE_EXISTING, COPY_ATTRIBUTES);

可以看出,新的用於文件操作的 NIO.2 API 非常便於使用。

原創文章,作者:IOWFW,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/317544.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IOWFW的頭像IOWFW
上一篇 2025-01-11 16:27
下一篇 2025-01-11 16:27

相關推薦

發表回復

登錄後才能評論