1. 程式人生 > >關於Java中寫入文字檔案的相關介紹

關於Java中寫入文字檔案的相關介紹

首先,寫入文字檔案需要開啟一個檔案,開啟一個檔案有兩種形式,分為建立一個新的檔案和向一個已有的檔案中追加資料
我們先來看一看建立一個新的檔案的方法

建立一個新的檔案

package com.li;

import java.io.PrintWriter;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;

public class Main {

    public static void main(String[] args) {
        // TODO 自動生成的方法存根
        PrintWriter outputStream = null
; try { outputStream = new PrintWriter(new FileOutputStream("stuff.txt")); }catch (FileNotFoundException e) { System.out.println("Error opening the file stuff.txt"); System.exit(0
); } System.out.println("Writing to file"); outputStream.println("The quick brown fox"); outputStream.println("jumped over the lazy dog."); outputStream.close(); System.out.println("End of program"); } }

檔案的輸入和輸出的相關的類都在java.io包中,在事例程式中,我們建立了一個名為stuff.txt的檔案,在我們的工程資料夾下面我們可以看到一個這樣的文字檔案,開啟后里面是
The quick brown fox
jumped over the lazy dog.
兩行字元。

使用

outputStream = new PrintWriter(new  
                         FileOutputStream("stuff.txt"));

來建立一個新的檔案,outputStream變數是PrintWriter型別的,並且實在try塊外面宣告的,這是因為如果在try語句塊內部宣告,那麼outputStream變數將會變成一個區域性變數,將無法在try外部使用。而使用這種方法建立的檔案總是一個空的檔案,也就是說,如果你指定的資料夾中沒有stuff.txt檔案,那麼系統會幫你建立一個stuff.txt檔案,如果有一個stuff.txt檔案,那麼會先刪除原先的stuff.txt檔案,然後再建立一個新的stuff.txt檔案。

我們使用try – catch語句來捕獲異常,防止建立檔案失敗,好丟擲異常。

在向檔案中寫入資料的時候,我們使用的print方法,println方法,printf方法等等和我們平時輸入到螢幕上的其實是一樣的。

在對檔案操作完成以後不要忘記關閉檔案,雖然java會幫我們關閉檔案,但是當程式異常的結束或者發生錯誤的時候,java沒法幫我們關閉檔案,而且還有可能損壞檔案。而關閉檔案還有一個好處就是可以把緩衝區的所有資料強制輸出到檔案中,防止檔案不完整。

我們最後再談談緩衝區的問題,與檔案相連的輸出流通通常被緩衝,這就意味著程式並非儘快的實際寫入輸出資料的每一個例項,而是把資料儲存到一個成為緩衝區的臨時儲存單元中,當這個臨時儲存單元累積的資料足夠多的時候,把資料寫入檔案,這樣做可以減少寫入次數,提高效率,使用flush()方法可以強制把已被緩衝,但還沒有實際寫入檔案的資料寫入檔案,而是用close()方法可以同時自動的呼叫flush()方法。

把資料追加到文字檔案

最後我們再來講一下把資料追加到文字檔案,其實就是開啟檔案的時候有點不太一樣,使用

outputStream = new PrintWriter(new 
                  FileOutputStream("stuff.txt", true));

就可以實現向文字檔案中盤那個追加資料,同時true可以使用一個boolean的變數來代替,可以讓使用者選擇是否向檔案中追加資料。

相關推薦

關於Java寫入文字檔案相關介紹

首先,寫入文字檔案需要開啟一個檔案,開啟一個檔案有兩種形式,分為建立一個新的檔案和向一個已有的檔案中追加資料 我們先來看一看建立一個新的檔案的方法 建立一個新的檔案 package com.li; import java.io.PrintWriter

java壓縮文字檔案的讀寫

bzip2壓縮文字檔案的讀取(需apache commons-compress的支援): BufferedReader in =new BufferedReader(new InputStreamReader( new BZip2CompressorInputStream

java複製文字檔案的方式我總結為14種(按字元讀取4,按位元組讀取8種!??)

java中複製檔案的方式 如果按照字元來讀取的話,可以有4種,基本的2種,高效的2種,高效特殊的1種 第0種: public class CopyFileDemo { public static void main(String[] args) throws Except

Java實現在文字檔案寫入資料和讀取資料

Java實現在文字檔案中寫入資料和讀取資料 寫資料到文字檔案中去: 程式碼如下所示: import java.io.File; import java.io.FileWriter; import java.io.IOException; public class

.net C# web程式執行錯誤日誌寫入文字檔案

網上找的原始碼,自己根據實際情況進行了修改,能將日誌儲存在發不出來的web程式根目錄下的ErrorLog資料夾內。 #region 建立錯誤日誌 ///-------------------------------------

Java統計一個文字檔案每一行字串出現的次數

需求:現要統計一個文字檔案中每一行字串出現次數 public static HashMap<String, Integer> analysizeFile(File file) { Ha

Java IO流將資訊寫入文字檔案

我們在程式設計的時候需要把一些資訊寫入到文字檔案中去,比如錯誤資訊,日誌資訊等。這裡羅列幾個把資訊寫入檔案的方法: import java.io.*; public class Test{

java逐行讀取和寫入文字檔案txt

逐行寫入文字 public class TestFileWriter {     public static void main(String[] args) {         FileWriter fw = null;         try {          

在MFC,如何將Unicode的CString中文字元寫入文字檔案TXT

在看了這個論壇後,我也想嘗試一下,如何把Unicode中文寫到txt檔案中。 很明顯,我可以輕易的把CStringW轉換成char*然後寫入txt(不用擔心中文會變成亂碼),但是我沒有這麼做。 因為解決問題的方法太多了,我們總是想著最簡單的那一種。 首先,地區語言設定很

Ansi、Unicode、UTF8等編碼字串之間的轉換和寫入文字檔案(學習……)

{    // ansi to unicodechar* szAnsi ="abcd1234你我他";    //預轉換,得到所需空間的大小int wcsLen = ::MultiByteToWideChar(CP_ACP, NULL, szAnsi, strlen(szAnsi), NULL, 0);   

java以UTF-8編碼寫入文字檔案

String json = "要寫入的JSON字串"; String file = "D:\\1.txt"; FileOutputStream writerStream = new FileOutputStream(file);     BufferedWriter wr

File類的特點?如何建立File類物件?Java如何操作檔案內容,什麼是Io流Io流如何讀取和寫入檔案?位元組緩衝流使用原則?

                            重難點提示                                 學習目標 1、能夠了解File類的特點(存在的意義,構造方法,常見方法) 2、能夠了解什麼是IO流以及分類(IO流的概述以及分類)

Java枚舉的相關應用

ack junit example nal enum dex index pub red package example6;import org.junit.Test;/*1.什麽是枚舉? * 需要在頤堤港範圍內取值,這個值只能是這個範圍內的一個 * 使用枚舉關鍵字enum

java讀取Property檔案屬性工具類

java中讀取Property配置檔案屬性工具類: import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; /** * 讀取Property配置檔

Java正則表示式相關類Pattern和Matcher的使用

在Java中,java.util.regex包定義了正則表示式使用到的相關類,其中最主要的兩個類為:Pattern、Matcher:   Pattern 編譯正則表示式後建立一個匹配模式;   Matcher 使用Pattern例項提供的正則表示式對目標字串進行匹

javaio建立檔案和讀取檔案

簡單瞭解IO流:https://www.cnblogs.com/weibanggang/p/10034325.html package com.wbg.iodemo1128; import java.io.*; public class OutputStreamDemo { public

java的日誌檔案補充點

        首先我們思考一下日誌是為了解決啥產生的,要求日誌又是怎麼樣的?        一日誌是用來除錯的,那麼就需要記錄程式當前的執行狀態和程式之前的執行狀態,那麼日誌檔案不僅要能夠輸出到控制檯還要能夠輸出到檔案,甚至能夠有郵件的形式通知開發人員。二、定位錯誤。要求

java讀取配置檔案的一些方法 getResourceAsStream 和 直接 FileInputStream 以及 配置System.getProperty("user.dir")所得的工作目錄

配置檔案位於 /src/ 下的情況已經由上述博主列出,需要的可以移步檢視,即以下幾個情況 1.路徑:src/aa.xml 2.位於src下同一個包下 3.位於src下不同包 不過本博主的專案是web專案,而配置檔案放在src檔案下容易因為快取導致更新不及時,

python file模組文字檔案和二進位制檔案以及字串和byte的理解

大前提:文字檔案和二進位制檔案都是以二進位制的方式存放到硬碟中的 看圖先~ 1. Python file讀寫加不加b w 開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。 wb

flume向hdfs寫入檔案(日誌)

問題: flume監控的目錄寫入大檔案的時候不能同步記錄在hdfs中 flume監控的目錄寫入大檔案的時候,同步記錄到hdfs中後變成多個小檔案 解決辦法:更改flume的配置資訊(主要更改滾動方式),滾動的意思是當flume監控的目錄達到了配置資訊中的某一條滾動方式的時候