Java JDK 学习笔记:File类
??? 不同的操作系統(tǒng)對(duì)于文件系統(tǒng)路徑的設(shè)置各有差別。例如在Windows中,一個(gè)路徑的表示法可能是:
??? "C:\\Workspace\\CH14\\"
??? 而在Linux下的路徑設(shè)置可能會(huì)像是:
??? "/home/justin/workspace/ch14"
??? Windows的路徑指定是使用UNC (Universal Naming Convention)路徑名,以\\開(kāi)始表示硬盤根目錄。如果沒(méi)有以\\開(kāi)始表示相對(duì)于當(dāng)前工作目錄的路徑,C是可選的硬盤指定,后面跟隨著:字符。而 UNIX-Like系統(tǒng)沒(méi)有Windows系統(tǒng)的C、D、E這樣的硬盤驅(qū)動(dòng)器概念,UNIX-Like系統(tǒng)的路徑指定以/開(kāi)始表示從根目錄開(kāi)始的絕對(duì)路徑,不以/開(kāi)始表示相對(duì)于當(dāng)前工作目錄的路徑。
??? 在程序中設(shè)置路徑時(shí)會(huì)有系統(tǒng)相依性的問(wèn)題, java.io.File類提供一個(gè)抽象的、與系統(tǒng)獨(dú)立的路徑表示。給它一個(gè)路徑字符串,它會(huì)將其轉(zhuǎn)換為與系統(tǒng)無(wú)關(guān)的抽象路徑表示,這個(gè)路徑可以指向一個(gè)文件、目錄或是URI(Uniform Resource Identifier)。
??? 一個(gè)File的實(shí)例被建立時(shí),它就不能再被改變內(nèi)容。File實(shí)例除了用作一個(gè)文件或目錄的抽象表示之外,它還提供了不少相關(guān)操作方法:可以用它來(lái)對(duì)文件系統(tǒng)作一些查詢與設(shè)置的動(dòng)作。要注意的是,不管是文件還是目錄,在Java中都是以File的實(shí)例來(lái)表示。
??? 范例14.1是一個(gè)設(shè)置與操作File實(shí)例的簡(jiǎn)單示范,可以指定查詢某個(gè)目錄下的所有文件與目錄名稱。
??? 范例14.1? FileDemo.java
??? package onlyfun.caterpillar;
??? import java.io.*;
??? import java.util.*;
??? public class FileDemo {
??????? public static void main(String[] args) {
??????????? try {
??????????????? File file = new File(args[0]);
??????????????? if(file.isFile()) { // 是否為文件
??????????????????? System.out.println(args[0] + " 文件");
??????????????????? System.out.print(
????????????????????????? file.canRead() ? "可讀 " : "不可讀 ");
??????????????????? System.out.print(
????????????????????????? file.canWrite() ? "可寫 " : "不可寫 ");
??????????????????? System.out.println(
????????????????????????? file.length() + "字節(jié)");
??????????????? }
??????????????? else {
??????????????????? // 列出所有的文件及目錄
??????????????????? File[] files = file.listFiles();
??????????????????? ArrayList<File> fileList =
??????????????????????????????????????? new ArrayList<File>();
??????????????????? for(int i = 0; i < files.length; i++) {
??????????????????????? // 先列出目錄
??????????????????????? if(files[i].isDirectory()) { //是否為目錄
??????????????????????????? // 取得路徑名
??????????????????????????? System.out.println("[" +
??????????????????????????????????? files[i].getPath() + "]");
??????????????????????? }
??????????????????????? else {
??????????????????????????? // 文件先存入fileList,待會(huì)再列出
??????????????????????????? fileList.add(files[i]);
??????????????????????? }
??????????????????? }
??????????????????? // 列出文件
??????????????????? for(File f: fileList) {
??????????????????????? System.out.println(f.toString());
??????????????????? }
??????????????????? System.out.println();
??????????????? }
??????????? }
??????????? catch(ArrayIndexOutOfBoundsException e) {
??????????????? System.out.println(
??????????????????????????? "using: java FileDemo pathname");
??????????? }
??????? }
??? }
??? 執(zhí)行結(jié)果:
??? java onlyfun.caterpillar.FileDemo C:\
??? [C:\WINDOWS]
??? [C:\workspace]
??? [C:\Documents and Settings]
??? [C:\Program Files]
??? [C:\System Volume Information]
??? C:\pagefile.sys
??? C:\A3N_A3L.10
??? C:\bootfont.bin
??? C:\ntldr
??? ...略
??? 這里先簡(jiǎn)單地介紹一下File類。File類主要是文件的抽象代表,若要作文件輸出/輸入,必須配合其他相關(guān)類來(lái)使用。接下來(lái)會(huì)配合各小節(jié)的內(nèi)容并適時(shí)地使用File類。
推薦初學(xué)者一個(gè)編程技術(shù)的學(xué)習(xí)網(wǎng)站,96堆棧 軟件編程網(wǎng),http://www.96dz.com,里面有C++視頻教程、C#視頻教程、Java視頻教程下
載,還有C\C++、Java、C# .NET等編程技術(shù)文摘,包括目前主流的Linux編程與Web編程等學(xué)習(xí)資料視頻教程下載。
轉(zhuǎn)載于:https://www.cnblogs.com/Javalove/archive/2011/02/24/1964094.html
總結(jié)
以上是生活随笔為你收集整理的Java JDK 学习笔记:File类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 爱的感觉(转载)
- 下一篇: Java学习之二-Java反射机制