對於數據的操作可以使用OutputStream類或者Writer類完成,但是這兩個輸出類有一定的侷限性。例如,OutputStream只允許輸出字節數據,writer只允許輸出字符數據和字符串數據。爲了簡化輸出的操作提供有兩個打印流操作類:字節打印流(PrintStream)、字符打印流(PrintWriter)
PrintWriter類的常用方法
範例:使用PrintWriter實現文件內容輸出
package com.lxh.sixteenchapter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
public class JavaIODemo423 {
public static void main(String[] args) {
File file=new File("E:"+File.separator+"File"+File.separator+"info.txt");
if(!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
PrintWriter pu=null;
try {
pu=new PrintWriter(new FileOutputStream(file));
pu.println("姓名:唐三"); //輸出數據並換行
pu.print("年齡:"); //輸出數據不換行
pu.print(15);//輸出數據並換行
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
pu.close();
}
}
}
執行結果
打印流支持多種數據類型,也可以方便地實現數據的換行處理
從JDK1.5開始打印流支持了格式化輸出的操作,可以利用printf()方法設置數據的佔位符(
- 字符串:%s
- 整數:%d
- 浮點數:%m.nf
- 字符:%c
等)與具體的數值結合後進行內容輸出操作。
範例:格式化輸出
package com.lxh.sixteenchapter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
public class JavaIODemo425 {
public static void main(String[] args) {
File file=new File("E:"+File.separator+"File"+File.separator+"info.txt");
if(!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
PrintWriter pu=null;
try {
pu=new PrintWriter(new FileOutputStream(file));
String name="小舞";
int age=18;
double salary=88823.6;
pu.printf("姓名:%s、年齡:%d、薪水:%8.2f", name,age,salary);//格式化輸出
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
pu.close();
}
}
}
執行結果