1. 程式人生 > >java 中 “文件” 和 “流” 的簡單分析

java 中 “文件” 和 “流” 的簡單分析

amp 簡單 orm cto abs perm ext rem png

java 中 FIle 和 流的簡單分析

File類

簡單File 常用方法

創建一個File 對象,檢驗文件是否存在,若不存在就創建,然後對File的類的這部分操作進行演示,如文件的名稱、大小等

//創建一個File 對象,檢驗文件是否存在,若不存在就創建然後對File
package wfu;

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        System.out.println("Please input the file's name");
        Scanner scanner = new Scanner(System.in);
        //從控制臺輸入文件路徑名字
        String pathName = scanner.next();

        //根據路徑的名字創建一個Filea 對象
        File file = new File(pathName);//從這裏可以看出,File 這個方發中的參數是一個字符串
        //如果文件不存在,就創建一個
        if(!file.exists())
        {
            try {
                file.createNewFile();


            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        System.out.println("文件是否存在:"+file.exists());
        System.out.println("是文件嗎:"+file.isFile());
        System.out.println("是目錄嗎:"+ file.isDirectory());
        System.out.println("名稱" + file.getName());
        System.out.println("路徑" + file.getPath());
        System.out.println("絕對路徑:"+ file.getAbsolutePath());
        System.out.println("最後的修改時間:"+ new Date(file.lastModified()).toString());
        System.out.println("文件大小:" + file.length());


    }

}

運行結果

f:yjlblog.exe
文件是否存在:true
是文件嗎:true
是目錄嗎:false
名稱yjlblog.exe
路徑f:yjlblog.exe
絕對路徑:f:\\yjlblog.exe
最後的修改時間:Sat Nov 25 19:48:42 CST 2017
文件大小:0
說明:

對於上述代碼中lastModifued()方法返回文件最後的修改時間。該時間是一個長整數,是與時間點(1970 年 1 月 1 日,00:00:00 GMT)之間的毫秒數。因此通過Date l類進行封裝,即new 一個Date 對象,其中參數獲取毫秒數。

文件列表器

  • String[] list() :當File 類對象為目錄時,返回該目錄下所有文件以及子目錄
  • File[] list() :返回File 對象對應的路徑下的所有文件對象數組
    對於這兩個方法來說,第二種方法更加好一點,為什麽這嗎說呢,因為她可以調用file 的好多方法呀
舉個栗子OAO

定義一個類,演示利用list()方法把f根目錄下的目錄或者文件的名稱列舉出來。

public class Test1{
    public static void main(String[] args) {
        //根據路徑名稱穿件File 對象
        File file = new File("f:");
        //得到文件名列表
        if (file.isDirectory())
        {
            String[] fileNames = file.list();
            //利用for-each 打印各個文件名稱
            for (String fileNamesSeeall : fileNames)
            {
                System.out.println(fileNamesSeeall);
            }
        }
    }

}

運行結果

$RECYCLE.BIN
111
360Rec
Adobe After Effects CC 2014精簡綠色版
Adobe After Effects CC 2014精簡綠色版.rar
Adobe Premiere Pro Preview Files
amp皮膚
hlw.mp4
java 大項目實時更新
JAVA項目
MLO4.2.1.rar
mmexport1510996082011.png
mysql-connector-java-5.1.20-bin.jar
navicat_permium_x64
navicat_permium_x64.7z
orcle 安裝遇到的問題.txt
System Volume Information
TeamViewer Corporate 12.0.88438.7z
test2.txt
typecho-theme-apollo-1.0.2.zip
WPS+Office+2016+
WPS+Office+2016+.7z
yjlblog.exe
yjlblog.txt
個人
作業
圖書數據管理系統-MySQL (V2.0).zip
壁紙
備份
娛樂
宿舍截圖
小軟件
屏幕錄像專家 v20170328.exe
工作室
幫助文檔
憋笑.prproj
我的碼農之路
收藏
數據庫啟用
新建文件夾
雜七雜八
泡泡表情
王老師文件
班級信息
電子圖書
素材
綱要實踐課安排.doc
網站
蘋果apple107秒快閃
蘋果apple107秒快閃.rar
表情包
課件筆記
趙彬富
過錯不應犯之,功績亦不應漠之.docx
重要資料
音樂

說明

從執行結果可以看出,list()方法將f盤的東西都出來了(都讓你們看到了嗚嗚~~),但是麽有標明哪個是文件哪個是目錄呢QAQ..

舉第二個栗子(~ ̄▽ ̄)~*

那就把上面的沒有實現的功能實現吧,是目錄是文件拉出來溜溜!!!!

package wfu;

import java.io.File;

public class Test1{
    public static void main(String[] args) {
        //根據路徑名稱創建File 對象
        File file = new File("f:");
        //得到文件名列表
        if (file.isDirectory())
        {
            File[] files = file.listFiles();
            //利用foreach 獲取每個File對象
            for (File f:files)
            {
                if (f.isFile()){
                    System.out.println("文件: "+ f);
                }
                else{
                    System.out.println("目錄: " + f);
                }
            }
        }

    }
}

運行結果

目錄: f:\$RECYCLE.BIN
目錄: f:\111
目錄: f:\360Rec
目錄: f:\Adobe After Effects CC 2014精簡綠色版
文件: f:\Adobe After Effects CC 2014精簡綠色版.rar
目錄: f:\amp皮膚
文件: f:\hlw.mp4
目錄: f:\java theme
目錄: f:\java 大項目實時更新
目錄: f:\JAVA項目
文件: f:\MLO4.2.1.rar
文件: f:\mmexport1510996082011.png
文件: f:\mysql-connector-java-5.1.20-bin.jar
目錄: f:\navicat_permium_x64
文件: f:\navicat_permium_x64.7z
文件: f:\orcle 安裝遇到的問題.txt
目錄: f:\System Volume Information
文件: f:\TeamViewer Corporate 12.0.88438.7z
文件: f:\test2.txt
文件: f:\typecho-theme-apollo-1.0.2.zip
目錄: f:\WPS+Office+2016+
文件: f:\WPS+Office+2016+.7z
文件: f:\yjlblog.exe
文件: f:\yjlblog.txt
目錄: f:\個人
目錄: f:\作業
文件: f:\圖書數據管理系統-MySQL (V2.0).zip
目錄: f:\壁紙
目錄: f:\備份
目錄: f:\娛樂
目錄: f:\宿舍截圖
目錄: f:\小軟件
文件: f:\屏幕錄像專家 v20170328.exe
目錄: f:\工作室
目錄: f:\幫助文檔
文件: f:\憋笑.prproj
目錄: f:\我的碼農之路
目錄: f:\收藏
目錄: f:\數據庫啟用
目錄: f:\新建文件夾
目錄: f:\雜七雜八
目錄: f:\泡泡表情
目錄: f:\王老師文件
目錄: f:\班級信息
目錄: f:\電子圖書
目錄: f:\素材
文件: f:\綱要實踐課安排.doc
目錄: f:\網站
目錄: f:\蘋果apple107秒快閃
文件: f:\蘋果apple107秒快閃.rar
目錄: f:\表情包
目錄: f:\課件筆記
目錄: f:\趙彬富
文件: f:\過錯不應犯之,功績亦不應漠之.docx
目錄: f:\重要資料
目錄: f:\音樂

  • 輸入流(InputSream):只能從中讀取數據,而不能向其中寫入數據
  • 輸出流(OutputStream):只能向其寫入數據,而不能從中讀取數據
  • 字節流:在流中處理的基本單位為字節(8位的bit)的流
  • 字符流 :在流中處理的基本單位為字符(16位的Unicode)的流
  • 節點流 :不寫了,太長了,書上有.....
  • 過濾流:............

未完待續.....

java 中 “文件” 和 “流” 的簡單分析