1. 程式人生 > >IO流--字符流寫數據

IO流--字符流寫數據

io java 字符流


IO流是用來處理設備之間的數據傳輸的,諸如:文件的復制,上傳下載文件

Java中的流可以從不同的角度進行分類:

- 按照流的方向不同:分為輸入流和輸出流。

- 按照處理數據單位的不同:分為字節流和字符流。

- 按照功能不同:分為節點流和處理流



要區分字符流和字節流,我們可以從類名來區分

技術分享


類名中包含Reader:字符流 輸入流

類名中包含Writer:字符流 輸出流

類名中包含Input:字節流 輸入流

類名中包含Output:字節流 輸出流

包含Stream:字節流


今天著重來看下字符流.

Write顧名思義就是寫的意思,FileWriter(String fileName) 指的是傳遞一個文件的名稱

成員方法:

void write(String str) 往文件中寫入一個字符串

void flush() 刷新該流的緩沖,把內存緩沖區中的數據刷新到新的文件中去

void close() 關閉此流,但是要先刷新它


輸出流寫數據的一般步驟(也是最基本的步驟)

1.創建輸出流對象

2.調用輸出流對象寫數據的方法

3.刷新緩存,寫入文件

4.釋放資源.


舉例:

import java.io.FileWriter;
import java.io.IOException;
public class DemoFileWriter {
public static void main(String[] args) throws IOException {
//1.創建輸出流對象,導包和拋出異常(此次為演示,不解決異常)
FileWriter fw = new FileWriter("a.txt");
/**
* 創建輸出流對象做了如下幾件事情
* A.調用系統資源創建了一個文件a.txt
* B.創建了輸出流對象
* C.把輸出流對象指向文件
*/
//2.調用輸出流對象寫數據的方法write()  寫一個字符串
fw.write("IO流大法好");
/*
* 3.此時數據是寫在了緩存中,所以需要做接下來的第三步,刷新緩存.
*/
fw.flush();
//4.通知系統釋放資源,釋放之後再調用writer() 就沒有作用了
fw.close();
}
}


這裏需要區分關閉close()和刷新flush()方法的區別.

1.flush(); 刷新緩沖區,刷新後流對象還可以繼續用

2.close(); 釋放資源,在釋放前會強制刷新緩沖區.釋放後流對象就不能再使用了.


FileWriter寫數據的5個方法:

1.寫一個字符串數據 void write(String str);

2.寫一個字符串中的一部分數據,index開始索引,len表示寫幾個 ,void write(String str, int len);

3.寫一個字符數據, void write(int ch) 這裏之所以用int,是因為char類型的數據也對應著int數值.比如

‘a‘ 97

4.寫一個字符數組的數據 void write(char[] chs);

5.寫一個字符數組的一部分數據,index:開始索引,len寫幾個 void write(char[] chs,int index,int len);

舉個栗子:

import java.io.FileWriter;
import java.io.IOException;
public class DemoFileWriter {
public static void main(String[] args) throws IOException {
//1.創建輸出流對象,導包和拋出異常(此次為演示,不解決異常)
FileWriter fw = new FileWriter("a.txt");
// 寫入一個字符串數據 void write(String str);
fw.write("abcde");
//寫一個字符串中的一部分數據
fw.write("abcde",1,3);
//寫一個字符數組數據
char[] chs = {‘a‘,‘b‘,‘c‘,‘d‘};
fw.write(chs);
//寫完數據不要忘記刷新和關閉,要不然文件裏會沒有數據
fw.flush();
fw.close();
}
}

如果需要在文件中添加換行怎麽辦呢?

Windows中的換行: \r\n

linux 中 的換行 \n


這就是關於IO流寫數據的內容,下次分享字符流讀數據的內容.



本文出自 “xinsz08の平行時空” 博客,請務必保留此出處http://xinsz08.blog.51cto.com/10565212/1941451

IO流--字符流寫數據