9.1文件操作

java的文件操作還是非常強(qiáng)大的,這里主要說明幾點(diǎn),后面有一個(gè)詳細(xì)的文件讀寫例子。
1、文件讀寫一定要確保文件打開后要關(guān)閉,而且關(guān)閉方法要寫在finally中,java8出現(xiàn)的閉包操作也可以實(shí)現(xiàn)。
2、文件讀寫一定要明確文件編碼方式,是UTF-8還是GBK,不然肯定會(huì)出錯(cuò)
3、文件讀寫分大文件讀寫和小文件讀寫,大文件讀寫需要用到buffer,即緩沖,小文件就無所謂了
4、java讀寫文件時(shí),文件存儲(chǔ)路徑不要帶中文,java對(duì)中文的支持還是差一些。

代碼參照com.critc.FileReadWriteTest

public class FileReadWriteTest {
    /**
     * 創(chuàng)建文件夾
     *
     * @throws Exception
     */
    public void createDir() throws Exception {
        String path = "D:" + File.separator + "dir";
        File file = new File("D:\\dir");
        if (!file.exists())
            file.mkdir();
    }

    /**
     * 創(chuàng)建文件
     *
     * @throws Exception
     */
    public void createFile() throws Exception {
        File file = new File("D:\\dir\\test.txt");
        if (!file.exists())
            file.createNewFile();
    }

    /**
     * 刪除文件
     */
    public void deleteFile() {
        File file = new File("D:\\dir\\test.txt");
        file.deleteOnExit();
        if (file.exists())
            file.delete();
    }

    /**
     * 讀取文件列表
     *
     * @return
     */
    public List<String> readFile() {
        String path = "D:\\dir\\test.txt";
        File file = new File(path);
        List<String> list = new ArrayList<String>();
        BufferedReader reader = null;
        try {
            if (file.exists()) {
                reader = new BufferedReader(new InputStreamReader(new FileInputStream(path), "GBK"));
                String tempString = null;
                while ((tempString = reader.readLine()) != null) {
                    list.add(tempString);
                }
                reader.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        }
        return list;
    }

    /**
     * 寫文件
     */
    public void writeFile() {
        String path = "D:\\dir\\test.txt";
        FileOutputStream fileOutputStream = null;
        try {
            fileOutputStream = new FileOutputStream(path);
            OutputStreamWriter osw = new OutputStreamWriter(fileOutputStream, "GBK");
            String fileContent = "測試\r\n20160720\r\n";
            osw.write(fileContent);
            osw.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) throws Exception {
        FileReadWriteTest fileReadWrite = new FileReadWriteTest();
        fileReadWrite.createDir();
        fileReadWrite.createFile();
//        fileReadWrite.deleteFile();

        fileReadWrite.writeFile();
        List<String> list = fileReadWrite.readFile();
        for (String str : list) {
            System.out.println("文件內(nèi)容:" + str);
        }
    }
}

源碼下載

本例子詳細(xì)源碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,291評(píng)論 25 708
  • Java8張圖 11、字符串不變性 12、equals()方法、hashCode()方法的區(qū)別 13、...
    Miley_MOJIE閱讀 3,908評(píng)論 0 11
  • 對(duì)于金錢的信念分享:錢是一種能量,沒有正負(fù),也沒有對(duì)錯(cuò)。來,歡迎,走,感謝感恩。 1,感覺掙錢挺難的,錢的感受:你...
    艷敏姐閱讀 264評(píng)論 0 0
  • 上一篇提到了CAC和LTV可以作為衡量產(chǎn)品的標(biāo)尺,這次我們索性就把這兩個(gè)概念拿出來聊一下,順便補(bǔ)充一個(gè)概念,PBP...
    colearners閱讀 17,036評(píng)論 0 121
  • 兒子,加油 ——寄語即將步入初中的孩子 01 兒子,此時(shí)的你已經(jīng)考試一個(gè)小時(shí)了,這就意味著你已經(jīng)成為我們中學(xué)的一名...
    西瓜甜甜啦閱讀 1,207評(píng)論 21 35

友情鏈接更多精彩內(nèi)容