亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中創建并寫文件的方式有幾種

發布時間:2021-07-30 15:34:07 來源:億速云 閱讀:290 作者:chen 欄目:編程語言

這篇文章主要講解了“Java中創建并寫文件的方式有幾種”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java中創建并寫文件的方式有幾種”吧!

在java中有很多的方法可以創建文件寫文件,你是否真的認真的總結過?下面筆者就幫大家總結一下java中創建文件的五種方法。

  1. Files.newBufferedWriter(Java 8)

  2. Files.write(Java 7 推薦)

  3. PrintWriter

  4. File.createNewFile

  5. FileOutputStream.write(byte[] b) 管道流

實際上不只這5種,通過管道流的排列組合,其實有更多種,但是筆者總結的這五種可以說是最常用及最佳實踐,

前提小知識

以前我在寫技術文章涉及到“流關閉”、“連接關閉”的時候,經常有人留言:“還寫技術文章,寫個流都不知道close()”,這種留言我遇到過無數回!

在本文中大量的使用到了try-with-resources語法,這個語法真的是很久的了,但是的確還有小伙伴不知道(知道的小伙伴就略過吧)。我還是說一下,下文中的管道流不是我沒close,是自動關閉close的。

try(管道流、連接等實現了Closeable接口的類){     //這里使用類對象操作 } //用try()包含起來,就不用在finally里面自己手動的去 Object.close()了,會自動的關閉

1. Java 8 Files.newBufferedWriter

java8 提供的newBufferedWriter可以創建文件,并向文件內寫入數據。可以通過追加寫模式,向文件內追加內容。

@Test void testCreateFile1() throws IOException {    String fileName = "D:\\data\\test\\newFile.txt";     Path path = Paths.get(fileName);    // 使用newBufferedWriter創建文件并寫文件    // 這里使用了try-with-resources方法來關閉流,不用手動關閉    try (BufferedWriter writer =                    Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {       writer.write("Hello World -創建文件!!");    }     //追加寫模式    try (BufferedWriter writer =                 Files.newBufferedWriter(path,                         StandardCharsets.UTF_8,                         StandardOpenOption.APPEND)){        writer.write("Hello World -字母哥!!");    } }

2. Java 7 Files.write

下面的這種方式Files.write,是筆者推薦的方式,語法簡單,而且底層是使用Java  NIO實現的。同樣提供追加寫模式向已經存在的文件種追加數據。這種方式是實現文本文件簡單讀寫最方便快捷的方式。

@Test void testCreateFile2() throws IOException {    String fileName = "D:\\data\\test\\newFile2.txt";     // 從JDK1.7開始提供的方法    // 使用Files.write創建一個文件并寫入    Files.write(Paths.get(fileName),                "Hello World -創建文件!!".getBytes(StandardCharsets.UTF_8));     // 追加寫模式    Files.write(          Paths.get(fileName),          "Hello World -字母哥!!".getBytes(StandardCharsets.UTF_8),          StandardOpenOption.APPEND); }

3. PrintWriter

PrintWriter是一個比較古老的文件創建及寫入方式,從JDK1.5就已經存在了,比較有特點的是:PrintWriter的println方法,可以實現一行一行的寫文件。

@Test void testCreateFile3() throws IOException {    String fileName = "D:\\data\\test\\newFile3.txt";     // JSD 1.5開始就已經存在的方法    try (PrintWriter writer = new PrintWriter(fileName, "UTF-8")) {       writer.println("Hello World -創建文件!!");       writer.println("Hello World -字母哥!!");    }     // Java 10進行了改進,支持使用StandardCharsets指定字符集    /*try (PrintWriter writer = new PrintWriter(fileName, StandardCharsets.UTF_8)) {        writer.println("first line!");       writer.println("second line!");     } */  }

4. File.createNewFile()

createNewFile()方法的功能相對就比較純粹,只是創建文件不做文件寫入操作。 返回true表示文件成功,返回  false表示文件已經存在.可以配合FileWriter 來完成文件的寫操作。

@Test void testCreateFile4() throws IOException {    String fileName = "D:\\data\\test\\newFile4.txt";     File file = new File(fileName);     // 返回true表示文件成功    // false 表示文件已經存在    if (file.createNewFile()) {       System.out.println("創建文件成功!");    } else {       System.out.println("文件已經存在不需要重復創建");    }     // 使用FileWriter寫文件    try (FileWriter writer = new FileWriter(file)) {       writer.write("Hello World -創建文件!!");    }  }

5.最原始的管道流方法

最原始的方式就是使用管道流嵌套的方法,但是筆者覺得這種方法歷久彌新,使用起來非常靈活。你想去加上Buffer緩沖,你就嵌套一個BufferedWriter,你想去向文件中寫java對象你就嵌套一個ObjectOutputStream。但歸根結底要用到FileOutputStream。

@Test void testCreateFile5() throws IOException {    String fileName = "D:\\data\\test\\newFile5.txt";    try(FileOutputStream fos = new FileOutputStream(fileName);       OutputStreamWriter osw = new OutputStreamWriter(fos);       BufferedWriter bw = new BufferedWriter(osw);){       bw.write("Hello World -創建文件!!");       bw.flush();    } }

感謝各位的閱讀,以上就是“Java中創建并寫文件的方式有幾種”的內容了,經過本文的學習后,相信大家對Java中創建并寫文件的方式有幾種這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

城市| 莱州市| 乌鲁木齐市| 广宁县| 安龙县| 泾川县| 田东县| 中牟县| 开原市| 扶风县| 肇庆市| 南涧| 定结县| 宁都县| 萝北县| 深水埗区| 定州市| 威海市| 那坡县| 达日县| 绥宁县| 山东省| 山阳县| 保定市| 苏尼特右旗| 德昌县| 广西| 平邑县| 安图县| 五家渠市| 潮州市| 辽宁省| 塔城市| 宁安市| 松潘县| 灵寿县| 都匀市| 五原县| 沂南县| 德江县| 汽车|