深入淺出javase——打印流

/*

* 打印流

* 字節流打印流PrintStream

* 字符打印流PrintWriter

*

* 打印流的特點:

* A:只有寫數據的,沒有讀取數據。只能操作目的地,不能操作數據源。

* B:可以操作任意類型的數據。

* C:如果啟動了自動刷新,能夠自動刷新。

* D:該流是可以直接操作文本文件的。

* 哪些流對象是可以直接操作文本文件的呢?

* FileInputStream

* FileOutputStream

* FileReader

* FileWriter

* PrintStream

* PrintWriter

* 看API,查流對象的構造方法,如果同時有File類型和String類型的參數,一般來說就是可以直接操作文件的。

*

* 流:

* 基本流:就是能夠直接讀寫文件的

* 高級流:在基本流基礎上提供了一些其他的功能

*/

public class PrintWriterDemo {

public static void main(String[] args) throws IOException {

// 作為Writer的子類使用

PrintWriter pw = new PrintWriter("pw.txt");

pw.write("hello");

pw.write("world");

pw.write("java");

pw.close();

}

}


/*

* 1:可以操作任意類型的數據。

* print()

* println()

* 2:啟動自動刷新

* PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true);

* 還是應該調用println()的方法才可以

* 這個時候不僅僅自動刷新了,還實現了數據的換行。

*

* println()

*其實等價于于:

*bw.write();

*bw.newLine();

*bw.flush();

*/

public class PrintWriterDemo2 {

public static void main(String[] args) throws IOException {

// 創建打印流對象

// PrintWriter pw = new PrintWriter("pw2.txt");

PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true);

// write()是搞不定的,怎麼辦呢?

// 我們就應該看看它的新方法

// pw.print(true);

// pw.print(100);

// pw.print("hello");

pw.println("hello");

pw.println(true);

pw.println(100);

pw.close();

}

}


/*

* 需求:DataStreamDemo.java複製到Copy.java中

* 數據源:

* DataStreamDemo.java -- 讀取數據 -- FileReader -- BufferedReader

* 目的地:

* Copy.java -- 寫出數據 -- FileWriter -- BufferedWriter -- PrintWriter

*/

public class CopyFileDemo {

public static void main(String[] args) throws IOException {

// 以前的版本

// 封裝數據源

// BufferedReader br = new BufferedReader(new FileReader(

// "DataStreamDemo.java"));

// // 封裝目的地

// BufferedWriter bw = new BufferedWriter(new FileWriter("Copy.java"));

//

// String line = null;

// while ((line = br.readLine()) != null) {

// bw.write(line);

// bw.newLine();

// bw.flush();

// }

//

// bw.close();

// br.close();

// 打印流的改進版

// 封裝數據源

BufferedReader br = new BufferedReader(new FileReader(

"DataStreamDemo.java"));

// 封裝目的地

PrintWriter pw = new PrintWriter(new FileWriter("Copy.java"), true);

String line = null;

while((line=br.readLine())!=null){

pw.println(line);

}

pw.close();

br.close();

}

}


分享到:


相關文章: