IO框架(八)打印流、转换流
打印流:PrintWriter
特点
- 封装了print()/println()方法,支持写入后换行
- 支持数据原样打印
方法
| Modifier and Type |
Method and Description |
PrintWriter |
append(char c) 将指定的字符附加到此作者。 |
PrintWriter |
append(CharSequence csq) 将指定的字符序列附加到此作者。 |
PrintWriter |
append(CharSequence csq, int start, int end) 将指定字符序列的子序列附加到此作者。 |
boolean |
checkError() 如果流未关闭,请刷新流并检查其错误状态。 |
protected void |
clearError() 清除此流的错误状态。 |
void |
close() 关闭流并释放与之相关联的任何系统资源。 |
void |
flush() 刷新流。 |
PrintWriter |
format(Locale l, String format, Object... args) 使用指定的格式字符串和参数将格式化的字符串写入此写入程序。 |
PrintWriter |
format(String format, Object... args) 使用指定的格式字符串和参数将格式化的字符串写入此写入程序。 |
void |
print(boolean b) 打印布尔值。 |
void |
print(char c) 打印一个字符 |
void |
print(char[] s) 打印字符数组。 |
void |
print(double d) 打印双精度浮点数。 |
void |
print(float f) 打印浮点数。 |
void |
print(int i) 打印一个整数。 |
void |
print(long l) 打印一个长整数。 |
void |
print(Object obj) 打印一个对象。 |
void |
print(String s) 打印字符串。 |
PrintWriter |
printf(Locale l, String format, Object... args) 使用指定的格式字符串和参数将格式化的字符串写入该writer的方便方法。 |
PrintWriter |
printf(String format, Object... args) 使用指定的格式字符串和参数将格式化的字符串写入该writer的方便方法。 |
void |
println() 通过写入行分隔符字符串来终止当前行。 |
void |
println(boolean x) 打印一个布尔值,然后终止该行。 |
void |
println(char x) 打印一个字符,然后终止该行。 |
void |
println(char[] x) 打印字符数组,然后终止行。 |
void |
println(double x) 打印双精度浮点数,然后终止行。 |
void |
println(float x) 打印一个浮点数,然后终止该行。 |
void |
println(int x) 打印一个整数,然后终止该行。 |
void |
println(long x) 打印一个长整型,然后终止行。 |
void |
println(Object x) 打印一个对象,然后终止该行。 |
void |
println(String x) 打印一个字符串,然后终止行。 |
protected void |
setError() 表示发生错误。 |
void |
write(char[] buf) 写入一个字符数组。 |
void |
write(char[] buf, int off, int len) 写一个字符数组的一部分。 |
void |
write(int c) 写一个字符 |
void |
write(String s) 写一个字符串 |
void |
write(String s, int off, int len) 写一个字符串的一部分。 |
举例
public class Demo08 {
public static void main(String[] args) throws Exception{
PrintWriter pw = new PrintWriter("D:\\练习3.txt");
pw.println(97);
pw.println(true);
pw.println(3.14);
pw.println('a');
pw.close();
System.out.println("执行完毕");
}
}
转换流
桥转换流:
- InputStreamReader/OutputStreamWriter
方法
| Modifier and Type |
Method and Description |
void |
close() 关闭流并释放与之相关联的任何系统资源。 |
String |
getEncoding() 返回此流使用的字符编码的名称。 |
int |
read() 读一个字符 |
int |
read(char[] cbuf, int offset, int length) 将字符读入数组的一部分。 |
boolean |
ready() 告诉这个流是否准备好被读取。 |
举例1
public class DEMO09 {
public static void main(String[] args) throws Exception{
FileInputStream fis = new FileInputStream("D:\\练习2.txt");
InputStreamReader isr = new InputStreamReader(fis,"utf-8");//写上编码方式
int data=0;
while ((data=isr.read())!=-1){
System.out.print((char)data);
}
isr.close();
}
}
//输出:
加油史小鹏!
加油史小鹏!
加油史小鹏!
加油史小鹏!
加油史小鹏!
加油史小鹏!
加油史小鹏!
加油史小鹏!
加油史小鹏!
加油史小鹏!
OutputStreamWriter
方法
| Modifier and Type |
Method and Description |
void |
close() 关闭流,先刷新。 |
void |
flush() 刷新流。 |
String |
getEncoding() 返回此流使用的字符编码的名称。 |
void |
write(char[] cbuf, int off, int len) 写入字符数组的一部分。 |
void |
write(int c) 写一个字符 |
void |
write(String str, int off, int len) 写一个字符串的一部分。 |
举例1
public class Demo10 {
public static void main(String[] args) throws Exception{
FileOutputStream fos = new FileOutputStream("D:\\练习4.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos,"gbk");
//写入
for (int i=0;i<10;i++){
osw.write("史小鹏Yes!\n");
osw.flush();
}
osw.close();
fos.close();
System.out.println("完成");
}
}