JavaIO 總結筆記<二> IO簡介和File文件

個人博客磷杏、個人簡書圃酵、gitHub主頁

簡介:

IO操作面臨很多問題,信息量的巨大,網(wǎng)絡的環(huán)境等等昂利,因為IO不僅僅是對本地文件窝稿、目錄的操作祝闻,有時對二進制流奕谭、還有一部分是網(wǎng)絡方面的資源,

所以多種原因直接造成IO操作無疑是耗時且復雜多變的贵涵。Java對IO的支持是個不斷的演變過程列肢,經(jīng)過了很多的優(yōu)化,直到JDK1.4以后宾茂,才趨于穩(wěn)定瓷马,

在JDK1.4中,加入了nio類跨晴,解決了很多性能問題欧聘,雖然我們有足夠的理由不去了解關于Java IO以前的情況,但是為了學好現(xiàn)在的類端盆,

我們還是打算去研究下怀骤,通過掌握類的優(yōu)化情況來徹底理解IO的機制!Java IO主要主要在java.io包下焕妙,分為四大塊近80個類:

  • 1基于字節(jié)操作的I/O接口:InputStream和OutputStream

  • 2基于字符操作的I/O接口:Writer和Reader

  • 3基于磁盤操作的I/O接口:File

  • 4基于網(wǎng)絡操作的I/O接口:Socket(不在java.io包下)

影響IO性能的無非就是兩大因素:數(shù)據(jù)的格式及存儲的方式蒋伦,前兩類主要是數(shù)據(jù)格式方面的,后兩個類是存儲方式方面的:本地和網(wǎng)絡焚鹊。
所以策劃好這兩個方面的活動痕届,有助于我們合理使用IO。

IO結構圖:

結構圖

一末患、java io的開始:

File文件

  1. 我們主要講的是流爷抓,流的本質也是對文件的處理,我們循序漸進一步一步從文件講到到流去阻塑。

  2. java 處理文件的類 File,java提供了十分詳細的文件處理方法果复,這里只列舉一些簡單的例子陈莽,其他的可以查API接口文檔

package com.afinalstone.file;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by AFinalStone on 2017/6/27.
 */
public class F01_FileTest {

    //獲取系統(tǒng)的行分隔符,文件分隔符
    private  String line = System.getProperty("line.separator");
    private  String separator_Path = System.getProperty("file.separator");

    /**
     * @throws IOException 檢測當前目錄是否存在文件,不存在則創(chuàng)建
     */
    public static void createFile() throws IOException {

        File f = new File(IO01_FileTest);
        System.out.println(f);
        //public boolean exists()   判斷文件是否存在
        if (f.exists()) {
            System.out.println("File Exists");
        } else {
            System.out.println("File No Exists");
//          public boolean createNewFile()  創(chuàng)建新文件
//          public boolean mkdir()  根據(jù)路徑創(chuàng)建單級目錄
//          public boolean mkdirs() 根據(jù)路徑創(chuàng)建目錄且允許創(chuàng)建多級目錄
            f.createNewFile();
        }
    }

    /**
     * 獲得文件最后一次修改時間
     */
    public static void getTimeOfLastModified() {
        File f = new File(IO01_FileTest);

        //public long lastModified()    文件最后一次被修改的時間,UNIX時間
        long time = f.lastModified();
        System.out.println(time);

        Date d = new Date(time);
        System.out.println(d);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm");
        System.out.println(sdf.format(d));
    }

    public static void operateFile() {

        File f = new File(IO01_FileTest);

        //public boolean canWrite() 文件是否可寫
        System.out.println("canWrite: "+f.canWrite());

        //public long length()  返回文件內容長度,單位字節(jié)
        System.out.println("length: "+f.length());

        //public String getPath()   返回文件的路徑信息
        System.out.println("getPath: "+f.getPath());

        //public boolean isFile()   判斷給定的路徑是否是一個文件
        System.out.println("isFile: "+f.isFile());

        //public boolean isDirectory()  判斷給定的路徑是否為目錄
        System.out.println("isDirectory: "+f.isDirectory());

        //public String getName()   獲得目錄的名字
        System.out.println("getName: "+f.getName());
        System.out.println("getPath: "+f.getPath());

        //public boolean renameTo(File dest)    重命名文件走搁,路徑不同會新建
        //f.renameTo(new File("c:\\test\\b.txt"));

        //public boolean delete()   刪除文件或者空目錄
//        f.delete();

    }

    public static void listFile(){

//      public File[] listFiles()   列出指定目錄的全部文件和文件夾
        File fs=new File("src\\com\\afinalstone\\file");
        File[] temp=fs.listFiles();
        for (int i = 0; i < temp.length; i++) {
            System.out.println(temp[i]+"\t"+temp[i].length()+"\t"+temp[i].lastModified());
        }

//      public String[] list()  列出指定目錄的全部文件或文件夾的名稱
        String[] s=fs.list();
        for (int i = 0; i < s.length; i++) {
            System.out.println(s[i]);
        }

        temp = fs.listFiles(new FileFilter(){//自定義一個過濾器類

            public boolean accept(File f) {   //.java
                //1.
                if(f.isFile())
                {
                    //2.
                    String name=f.getName();
                    //System.out.println(name);
                    //3.
                    if(name.endsWith(".java"))
                        return true;
                    else {
                        return false;
                    }
                }
                else {
                    return false;
                }
            }});
        for (int i = 0; i < temp.length; i++) {
            System.out.println(temp[i]);
        }
    }

}


項目地址:傳送門

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末独柑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子私植,更是在濱河造成了極大的恐慌忌栅,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曲稼,死亡現(xiàn)場離奇詭異索绪,居然都是意外死亡,警方通過查閱死者的電腦和手機贫悄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門瑞驱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窄坦,你說我怎么就攤上這事唤反。” “怎么了鸭津?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵彤侍,是天一觀的道長。 經(jīng)常有香客問我逆趋,道長盏阶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任父泳,我火速辦了婚禮般哼,結果婚禮上,老公的妹妹穿的比我還像新娘惠窄。我一直安慰自己蒸眠,他們只是感情好,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布杆融。 她就那樣靜靜地躺著楞卡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪脾歇。 梳的紋絲不亂的頭發(fā)上蒋腮,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機與錄音藕各,去河邊找鬼池摧。 笑死,一個胖子當著我的面吹牛激况,可吹牛的內容都是我干的作彤。 我是一名探鬼主播膘魄,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼竭讳!你這毒婦竟也來了创葡?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤绢慢,失蹤者是張志新(化名)和其女友劉穎灿渴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胰舆,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡骚露,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了思瘟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荸百。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖滨攻,靈堂內的尸體忽然破棺而出够话,到底是詐尸還是另有隱情,我是刑警寧澤光绕,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布女嘲,位于F島的核電站,受9級特大地震影響诞帐,放射性物質發(fā)生泄漏欣尼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一停蕉、第九天 我趴在偏房一處隱蔽的房頂上張望愕鼓。 院中可真熱鬧,春花似錦慧起、人聲如沸菇晃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽磺送。三九已至,卻和暖如春灿意,著一層夾襖步出監(jiān)牢的瞬間估灿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工缤剧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留馅袁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓荒辕,卻偏偏與公主長得像司顿,于是被迫代替她去往敵國和親芒粹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內容