Java檔案操作I

來源:互聯網
上載者:User

首先讓我們來思考一下什麼是檔案。
這裡的檔案專指電腦中的檔案,如我們經常使用的txt文字檔、word文檔、視頻檔案、音頻檔案、windows系統下的exe可執行檔、編寫程式的原始碼檔案等等,我們平時上網衝浪瀏覽的網頁,其實也是一種檔案。它與我們的電腦生活形影不離,一句話,我們使用電腦,就是與檔案打交道。
概括的講,電腦檔案就是儲存在某種存放裝置上的資料流。
為了有組織的管理這些儲存在電腦中的檔案,以人類辦公中的檔案夾為靈感,設計了電腦中的檔案夾\目錄概念。接著就引入了檔案系統,這個專門負責管理檔案和檔案夾\目錄的軟體。如Windows下的NTFS、FAT32和Linux下的Ext4,請參考相關詞條。

下面進入正題,我們如何使用Java來操作這些檔案。
一、瞭解一下Java的IO包
概述如下:通過資料流、序列化和檔案系統來提供系統的輸入和輸出。
此包有12個介面、51個類(1.6),其中最需要我們首先掌握的是:
File類、Reader類、Writer類、InputStream類和OutputStream。
1、先來看看File類
我們這個話題的主角,此類提供了很多方法來操作檔案,並且是與作業系統無關的,我們不用把精力投入在每個作業系統獨特的路徑寫法,都交給這個類吧。對於檔案操作,我們最常使用的幾個是:
建立檔案夾-mkdir()
建立檔案-createNewFile()
刪除檔案夾或檔案-delete()
查看檔案的屬性,如:
檔案大小:length()
是否為隱藏檔案:isHidden()
是否可讀寫:canRead()、canWrite()
最後修改時間:lastModified()

例子:

import java.io.*;public class TestFile{        public static void main(String[] args)        {                String folderPath = "./linc";                String filePath = "./linc/tmp.txt";                 try                {                File folder = new File(folderPath);                File file = new File(filePath);                System.out.println("make dir is " + file.mkdir());                System.out.println("make file is " + file.createNewFile());                System.out.println("file size is " + file.length());                System.out.println("is hidden: " + file.isHidden());                System.out.println("can read: " + file.canRead());                System.out.println("is can write: " + file.canWrite());                System.out.println("last modified: " + new Date(file.lastModified()));                }                catch(IOException ex)                {                        System.out.println("IOException: " + ex.getMessage());                }        }}

2、Reader和Writer類
讀寫字串流的高手,這是inputStream類和OutputStream最大的區別。當我們對文字檔進行輸入輸出操作時,多使用Reader和Writer,會帶給我沒很大的便利。
先說寫,然後咱們再讀。需要注意的是,操作完畢後一定要調用close()方法。
Writer:
    此類的繼承體系如下:

        java.lang.Object
            |
            |____java.io.Writer
                    |
                    |____java.io.PipedWriter
                    |
                    |____java.io.PrintWriter
                    |
                    |____java.io.FilterWriter
                    |
                    |____java.io.StringWriter
                    |
                    |____java.io.BufferedWriter
                    |
                    |____java.io.CharArrayWriter
                    |
                    |____java.io.OutputStreamWriter
                            |
                            |____java.io.FileWriter
顧名思義,最重要的方法是write,並重載了多次方便我們使用。

Reader:
    此類的繼承體系與Writer類似:
        java.lang.Object
            |
            |____java.io.Reader
                    |
                    |____java.io.PipedReader
                    |
                    |____java.io.StringReader
                    |
                    |____java.io.FilterReader
                    |        |
                    |        |__java.io.PushbackReader
                    |
                    |____java.io.BufferedReader
                    |        |
                    |        |__java.io.LineNumberReader
                    |
                    |____java.io.CharArrayReader
                    |
                    |____java.io.InputStreamReader
                            |
                            |____java.io.FileReader
此類最重要的方法是read(),也是重載多次。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.