PrintWriter

转载 2016年05月31日 10:03:57

Java.io包

8种:行刷新 字符流或字节流  文件名 文件名和字符集

1)首先先知道它的八种构造方法,但怎么记住这八种呢?我们都知道PrintWriter是一种过滤流,也叫处理流。也就是能对字节流和字符流进行处理,所以它会有:

PrintWriter(OutputStream out)  根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。

PrintWriter(Writer out)  创建不带自动行刷新的新 PrintWriter。

  这两种构造方法。由于PrintWriter能够实现自动刷新所以又衍生出另两种:

PrintWriter(OutputStream out, boolean autoFlush)  通过现有的 OutputStream 创建新的 PrintWriter。

PrintWriter(Writer out, boolean autoFlush)  创建新 PrintWriter

  true代表能自动刷新。注意这四种均不能指定编码集,但PrintStream中对OutprintStream操作时是可以的。【其中原因我不知,有知道的朋友欢迎指教】。

  然后PrintWriter能够直接对文件操作,所以还有这两种构造方法:

PrintWriter(File file) 使用指定文件创建不具有自动行刷新的新 PrintWriter。

PrintWriter(String fileName)  创建具有指定文件名称且不带自动行刷新的新 PrintWriter。


  注意该构造方法无法指定能否自动刷新,但可以指定字符集所以又衍生出两种:

PrintWriter(File file, String csn)  创建具有指定文件和字符集且不带自动刷行新的新 PrintWriter。

PrintWriter(String fileName, String csn)  创建具有指定文件名称和字符集且不带自动行刷新的新 PrintWriter。


2)熟记这八种构造方法,你可以随心构造你需要的PrintWriter对象了(假如为pw)。那它实现了什么接口呢?

1.Closeable接口, 所以它有pw.close()方法来实现对PrintWriter的关闭。

2.Flushable接口,所以它有pw.flush()方法来实现人为的刷新。

3.Appendable接口,所以它有pw.append(char c)方法来向此输出流中追加指定字符,等价于print().

3)下面就是它的方法。

返回类型为PrintWriter的方法

append(char c)

format(String regex,Object args)以指定格式的字符串和参数写入PrintWriter,我个人认为等同于printf

printf()

返回类型为void的方法

println(Object obj)打印obj,可以是基本数据类型或对象,并换行

print(Object obj)同上,但不换行

write(int i) 写入单个字符i

write(char[] buf)  写入字符数组。

write(char[] buf, int off, int len)  写入字符数组的某一部分。

write(String s) 写入字符串 

write(String s, int off, int len)写入字符串的某一部分

个人认为:write()方法与print()方法基本一致 但是write(char[] buf, int off, int len)print()不行。但笔者推荐使用Print系列方法,这正是PrintWriter类的价值所在。

返回类型为boolean类型的方法

checkError() 刷新流并检查其错误状态

4)举例:

import java.io.IOException;
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.File;


public class PrintWriterDemo {

public static void main(String[] args) {
PrintWriter pw = null;
String name = "张松伟";
int age = 22;
float score = 32.5f;
char sex = '男';
try{
pw = new PrintWriter(new FileWriter(new File("e:\\file.txt")),true);
pw.printf("姓名:%s;年龄:%d;性别:%c;分数:%5.2f;", name,age,sex,score);
pw.println();
pw.println("多多指教");
pw.write(name.toCharArray());
}catch(IOException e){
e.printStackTrace();
}finally{
pw.close();
}
}
}

上面这个例子中呢,完全可以把pw = new PrintWriter(new FileWriter(new File("e:\\file.txt")),true);中的new  FileWrite去掉 毫无影响且可以指定字符集。


什么是自动行刷新:

在没有刷新前,你写入的数据并没有真正写入文件,只是保存在内存中。刷新后才会写入文件,如果程序中没有调用刷新方法,当程序执行完时会自动刷新,也就是只有到数据全部执行完才会一次性写入,大数据量时对运行效率有影响。
创建不具有自动行刷新的对象,就是用这个对象写入数据时不会自动刷新。

Java_io体系之PrintWriter简介、走进源码及示例——19

Java_io体系之PrintWriter简介、走进源码及示例——19   PrintWriter   1、       类功能简介:               打印字符流、用于将各种j...
  • chenghuaying
  • chenghuaying
  • 2013年12月10日 14:33
  • 2375

Java Socket 编程注意 PrintWriter

利用Java进行Socket编程时,一般的,输出流,我们会选择PrintWriter。当选择PrintWriter时,要注意它的两个方法: write()  和 println(); 假如你写了个...
  • u011045817
  • u011045817
  • 2014年07月17日 11:28
  • 992

java中讲讲PrintWriter的用法,举例?

马 克-to-win:PrintWriter和PrintStream类似,只不过PrintStream是针对字节流的,而PrintWriter是针对字符流的。 例:1.2.1 im...
  • mark_to_win
  • mark_to_win
  • 2017年04月30日 16:46
  • 697

PrintWriter 返回前端中文乱码

servlet是一个好东西,有时候虽然麻烦,但是有时开发过程中对外提供http接口,还是比较方便的。 但是返回对方数据时,如果包含中文,那就可能会遇到中文乱码问题。 返回数据一般使用PrintWr...
  • baidu_18607183
  • baidu_18607183
  • 2017年11月27日 16:17
  • 143

Java中PrintWriter、BufferedWriter以及BufferredReader基本使用详解

PrintWriter的使用 PrintWriter:是具有自动行刷新的缓冲字符输出流,这是一个高级流。所谓的自动行刷新,意思就是说:在构造函数中指定autoFlush的值为true时,则 pri...
  • lyb1832567496
  • lyb1832567496
  • 2016年10月09日 13:53
  • 3188

PrintWriter的缓冲效果

http://leowzy.iteye.com/blog/1216990   PrintWriter因其简单易用、灵活而强大的格式化输出能力从而在字符流输出方面得到了越来越多的使用,不过以下两点还...
  • appleheshuang
  • appleheshuang
  • 2012年07月17日 17:05
  • 1054

PrintStream类和PrintWriter类

PrintStream主要操作byte流,而PrintWriter用来操作字符流。读取文本文件时一般用后者。 java的一个字符(char)是16bit的,一个BYTE是8bit的 Prin...
  • woolnil
  • woolnil
  • 2013年06月28日 14:58
  • 3271

使用标准输出流(system.out)和打印流 (PrintWriter)来读取txt文件

在电脑某盘根目录下放一个文本文件.里面写一首诗(内容随意发挥).把诗的内容输出到控制台. 要求: 1.使用标准输出流(system.out)来做。 2.使用打印流;  (PrintWrite...
  • momoainuonuo
  • momoainuonuo
  • 2017年07月04日 20:42
  • 638

【JavaSE】day11_Reader和Writer_PrintWriter_BufferedReader

【JavaSE】day11_Reader和Writer_PrintWriter 1.Reader和Writer 1)Writer,Reader 字符输出,输入流的父类。  * 字符流特点...
  • u011637069
  • u011637069
  • 2015年08月31日 22:11
  • 807

用PrintWriter解决servlet的中文输出问题

在Java的Servlet中用ServletOutputStream.print()方法输出中文会有问题,如 ServletOutputStream out = response.getOutp...
  • zhoudong1017
  • zhoudong1017
  • 2012年03月27日 10:33
  • 6692
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PrintWriter
举报原因:
原因补充:

(最多只允许输入30个字)