IO框架(八)打印流、转换流

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
    • 可将字节流转换为字符流
    • 可设置字符的编码方式

InputStreamReader

方法
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("完成");
    }
}
posted @ 2022-02-13 14:54  史小鹏  阅读(58)  评论(0)    收藏  举报