/*
字符流和字節流:
字節流兩個基類:
InputStream OutputStream
字符流兩個基類:
Reader Writer
先學習一下字符流的特點。
既然IO流是用於操作數據的,
那麼數據的最常見體現形式是:文件。
那麼先以操作文件爲主來演示。
需求:在硬盤上,創建一個文件並寫入一些文字數據。
找到一個專門用於操作文件的Writer子類對象。FileWriter。 後綴名是父類名。 前綴名是該流對象的功能。
*/
import java.io.*;
class FileWriterDemo
{
public static void main(String[] args) throws IOException
{
//創建一個FileWriter對象。該對象一被初始化就必須要明確被操作的文件。
//而且該文件會被創建到指定目錄下。如果該目錄下已有同名文件,將被覆蓋。
//其實該步就是在明確數據要存放的目的地。
FileWriter fw = new FileWriter("demo.txt");
//調用write方法,將字符串寫入到流中。
fw.write("abcde");
//刷新流對象中的緩衝中的數據。
//將數據刷到目的地中。
//fw.flush();
//關閉流資源,但是關閉之前會刷新一次內部的緩衝中的數據。
//將數據刷到目的地中。
//和flush區別:flush刷新後,流可以繼續使用,close刷新後,會將流關閉。
fw.close();
}
}
/*
IO異常的處理方式。
*/
import java.io.*;
class FileWriterDemo2
{
public static void main(String[] args)
{
FileWriter fw = null;
try
{
fw = new FileWriter("demo.txt");
fw.write("abcdefg");
}
catch (IOException e)
{
System.out.println("catch:"+e.toString());
}
finally
{
try
{
if(fw!=null)
fw.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
}
}
}
/*
演示對已有文件的數據續寫。
*/
import java.io.*;
class FileWriterDemo3
{
public static void main(String[] args) throws IOException
{
//傳遞一個true參數,代表不覆蓋已有的文件。並在已有文件的末尾處進行數據續寫。
FileWriter fw = new FileWriter("demo.txt",true);
fw.write("nihao\r\nxiexie");
fw.close();
}
}