Java JDK 学习笔记:File类
??? 不同的操作系統(tǒng)對于文件系統(tǒng)路徑的設(shè)置各有差別。例如在Windows中,一個路徑的表示法可能是:
??? "C:\\Workspace\\CH14\\"
??? 而在Linux下的路徑設(shè)置可能會像是:
??? "/home/justin/workspace/ch14"
??? Windows的路徑指定是使用UNC (Universal Naming Convention)路徑名,以\\開始表示硬盤根目錄。如果沒有以\\開始表示相對于當(dāng)前工作目錄的路徑,C是可選的硬盤指定,后面跟隨著:字符。而 UNIX-Like系統(tǒng)沒有Windows系統(tǒng)的C、D、E這樣的硬盤驅(qū)動器概念,UNIX-Like系統(tǒng)的路徑指定以/開始表示從根目錄開始的絕對路徑,不以/開始表示相對于當(dāng)前工作目錄的路徑。
??? 在程序中設(shè)置路徑時會有系統(tǒng)相依性的問題, java.io.File類提供一個抽象的、與系統(tǒng)獨立的路徑表示。給它一個路徑字符串,它會將其轉(zhuǎn)換為與系統(tǒng)無關(guān)的抽象路徑表示,這個路徑可以指向一個文件、目錄或是URI(Uniform Resource Identifier)。
??? 一個File的實例被建立時,它就不能再被改變內(nèi)容。File實例除了用作一個文件或目錄的抽象表示之外,它還提供了不少相關(guān)操作方法:可以用它來對文件系統(tǒng)作一些查詢與設(shè)置的動作。要注意的是,不管是文件還是目錄,在Java中都是以File的實例來表示。
??? 范例14.1是一個設(shè)置與操作File實例的簡單示范,可以指定查詢某個目錄下的所有文件與目錄名稱。
??? 范例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,待會再列出
??????????????????????????? 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
??? ...略
??? 這里先簡單地介紹一下File類。File類主要是文件的抽象代表,若要作文件輸出/輸入,必須配合其他相關(guān)類來使用。接下來會配合各小節(jié)的內(nèi)容并適時地使用File類。
推薦初學(xué)者一個編程技術(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类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爱的感觉(转载)
- 下一篇: Java学习之二-Java反射机制