Files工具類

File f = new File("");

之前很多的操作都需要創建File 對象 完成 相關的io操作 比較麻煩。

jdk 1.4後 提供了新的nio 有了一個新的類Files 簡化了我們之前的io操作 還是比較方便的。 

 

package com.fpy.nio;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.nio.charset.Charset;
import java.nio.file.*;
import java.util.ArrayList;
import java.util.List;

/**
 * Files工具類
 */
public class FilesTest {
    public static void main(String[] args) throws Exception {
        //創建多級目錄
        Files.createDirectories(Paths.get("F:\\study\\jdbc\\"));
        //創建目錄
        Files.createDirectory(Paths.get("F:\\aa"));
        //添加前綴,後綴創建臨時文件或臨時目錄
        Path newPath = Files.createTempFile(prefix, suffix, attrs);
        Path newPaths = Files.createTempDirectory(dir, prefix, attrs);

     /*   long s = System.currentTimeMillis();
        //實現文件複製
        Files.copy(Paths.get("F:\\GIT.zip"), new FileOutputStream("f:\\a.zip"));
        long e = System.currentTimeMillis();
        System.out.println(e - s);//測試時間*/

        //一次性讀取文件所有的行
        List<String> lines = Files.readAllLines(Paths.get("F:\\study\\jdbc\\代碼\\jdbcDemo\\src\\com\\bjsxt\\PreparedStatementDemo.java"));

        for (String line : lines) {
            System.out.println(line);
        }

        //向指定文件寫出內容
        List<String> content = new ArrayList<>();
        content.add("春眠不覺曉");
        content.add("處處聞啼鳥");

        /**
         * StandardOpenOption 是OpenOption的一個實現類
         * StandardOpenOption.APPEND 追加
         * READ	以讀取方式打開文件
         * WRITE  	已寫入方式打開文件
         * CREATE	如果文件不存在,創建
         * CREATE_NEW	如果文件不存在,創建;若存在,異常。
         * APPEND	在文件的尾部追加
         * DELETE_ON_CLOSE	當流關閉的時候刪除文件
         * TRUNCATE_EXISTING	把文件設置爲0字節
         * SPARSE	文件不夠時創建新的文件
         * SYNC	同步文件的內容和元數據信息隨着底層存儲設備
         * DSYNC同步文件的內容隨着底層存儲設備 
         */
        Files.write(Paths.get("F:\\PreparedStatementDemo.java"), content, StandardOpenOption.APPEND);
        System.out.println("<================================>");
        //java8新特性 列出當前目錄下的文件或者文件夾 lambda 寫的不順手
        Files.list(Paths.get("F:\\study")).forEach(
                a -> System.out.println(a)
        );
        //java8 列出文件內容
        Files.lines(Paths.get("F:\\PreparedStatementDemo.java")).forEach(aa -> System.out.println(aa));

    }
}

 

發佈了271 篇原創文章 · 獲贊 146 · 訪問量 61萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章