printwriter类——可用于多种输出对象,具有多种输出方式
来源:互联网 发布:第七封印知乎 编辑:程序博客网 时间:2024/05/21 09:33
PrintWrite类
PrintWrite类本质上是PrintStream的面向字符版本,实现了Appendable、AutoCloseable、Closeable以及Flushable接口。PrintWrite类具有几个构造函数。如下所示:
PrintWriter(OutputStream outputStream)
PrintWriter(OutputStream outputStream,boolean flushOnNewline)
PrintWriter(Writer outputStream)
PrintWriter(Writer outputStream,boolean flushOnNewline)
其中,OutputStream指定了将接收输出的打开的OutputStream对象。flushOnNewline参数控制每次调用println()、print()、或format()是否自动刷新输出缓存。如果flushOnNewline为true,就自动刷新;如果为false就不自动刷新。没有指定flushOnNewline参数的构造函数不自动刷新。
下面这几个构造函数为构造向文件中写入输出的PrintWrite对象提供了简便方法:
PrintWriter(File outputFile) throws FileNotFoundException
PrintWriter(File outputFile,String charSet)
throws FileNotFoundException,UnsupportedEncodingException
PrintWriter(String outputFileName) throws FileNotFoundException
PrintWriter(String outputFileName,String charSet)
throws FileNotFoundException,UnsupportedEncodingException
这些构造函数允许从File对象或根据指定的文件名创建PrintWrite对象。对于每种形式,都会自动创建文件。所有之前创建的同名文件都会被销毁。一旦创建PrintWrite对象,就将所有输出定向到指定的文件。可以通过charSet传递的名称来指定文件编码。
PrintWrite为所有类型(包括Object)都支持print()和println()方法。如果参数不是基本类型,那么PrintWrite方法会调用对象的toString方法,然后输出结果。
PrintWrite还支持printf()方法,它的工作方式与前面介绍的PrintWrite类中的printf()方法相同。该方法允许指定数据的精确格式。下面是在PrintWrite类中声明的printf()方法:
PrintWriter printf(String fmtString,Object...args)
PrintWriter printf(Locale loc,String fmtString,Object...args)
第一个版本使用fmtString指定的格式将args写入到标准输出,使用默认地区。第二个版本允许指定地区。这两个版本都返回调用PrintWrite对象
PrintWrite类也支持format()方法,该方法具有以下一般形式:
PrintWriter format(String fmtString,Object...args)
PrintWriter format(Locale loc,String fmtString,Object...args)
format()方法的工作方式与printf()方法完全类似。
下面是PrintWrite类的一些具体用法,如下所示:
注意:System.out属于OutputStream类,用于后台程序输出
下面是总结的一些具体用法:
import java.io.*;class ObjectDemo1{String s="这是被打印的对象";public String toString(){//System.out.println(s);//在控制台输出显示return s;//返回描述对象的字符串}}class PrintWriterDemo {static void p(PrintWriter pw){char c[]={'这','是','子','符','数','组'};String s="这是要写入的字符串";pw.print(new ObjectDemo1()); pw.println();pw.println(2>3); //打印boolean值pw.println(c);//打印字符数组pw.println(1.2345678);//打印精度浮点数pw.println(100); //打印一个整型数pw.println("这是要打印的字符串"); //打印一个字符串pw.printf("姓名:%s\t性别:%c\t年龄:%d\t出生日期:%d\t","刘勋",'男',21,1993); pw.println();//格式化打印pw.format("姓名:%s\t性别:%c\t年龄:%d\t出生日期:%d\t","刘勋",'男',21,1993); pw.println();//与上例相同pw.write("这是要写入的内容"); pw.println();//写入字符串pw.write(c,1,4); pw.println();//写入字符数组的某一部分pw.write(s,2,6);//写入字符串中的某一部分} public static void main(String[] args) throws IOException{ File f=new File("c:1.txt"); FileWriter f1=new FileWriter("c:2.txt");try( PrintWriter pw1=new PrintWriter(f,"gbk");//f是File对象 PrintWriter pw2=new PrintWriter(System.out);//System.out是OutputStream子类,在运行结果中进行显示 PrintWriter pw3=new PrintWriter(f1);//FileWriter是继承自Writer类 PrintWriter pw4=new PrintWriter("c:3.txt","gbk");//按照字符集写入文件名指定的文件){ p(pw1); p(pw2); p(pw3); p(pw4);}catch(IOException e){System.out.println("I/O Error: "+e);} }}
程序输出结果如下:
文件1,2,3的内容如下所示:
文件3的内容与以上一样,在此不在截图
- printwriter类——可用于多种输出对象,具有多种输出方式
- ace日志多种输出方式
- MapReduce多种输出格式
- 字符串倒序输出-多种方法
- 输出分数的多种形式
- 对象的多种创建方式
- servlet中用PrintWriter对象输出中文乱码
- 关于helloworld的多种输出方法
- 输出平行四边形图案(多种方案)
- 用Log4j自动生成日志(多种方式)输出到文件、数据库等
- 多种方式实现字符串/无符号数反向输出_栈_递归_头尾指针
- 多种排列方式满足条件,输出按照名字排列字典序最小的一个
- IO流——输出流(printStream和printWriter)
- QString::arg()可用于固定长度输出
- PrintWriter输出乱码问题
- 获取Class对象的多种方式
- 树莓派多种可用系统
- 网络编程(9)—— 怎么获取和设置socket的输出\输入缓冲等多种可选项
- Ant构建Java项目之第1篇
- 内存映射文件原理探索
- 前言
- [转] 张亚勤:网络是泡沫吗?(2001年微软亚洲研究院院长话题)
- photoshop使用总结-高度浓缩
- printwriter类——可用于多种输出对象,具有多种输出方式
- qooxdoo通用javascript框架手册(六)
- 求职经验
- cocoaGCD别人整理
- 3dsmax给模型贴图方法总结
- 3dsmax一般性使用总结
- 蓝桥杯——算法训练之乘积最大
- 素数筛法
- 怎么样应付小孩不想意上幼儿园[图]