/*
* 打印流
* 字節流打印流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();
}
}
閱讀更多 java課堂 的文章