Java中的PrintWriter 介绍_动力节点Java学院整理
短信预约 -IT技能 免费直播动态提醒
PrintWriter 介绍
PrintWriter 是字符类型的打印输出流,它继承于Writer。
PrintStream 用于向文本输出流打印对象的格式化表示形式。它实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。
PrintWriter 函数列表
PrintWriter(OutputStream out)PrintWriter(OutputStream out, boolean autoFlush)PrintWriter(Writer wr)PrintWriter(Writer wr, boolean autoFlush)PrintWriter(File file)PrintWriter(File file, String csn)PrintWriter(String fileName)PrintWriter(String fileName, String csn)PrintWriter append(char c)PrintWriter append(CharSequence csq, int start, int end)PrintWriter append(CharSequence csq)boolean checkError()void close()void flush()PrintWriter format(Locale l, String format, Object... args)PrintWriter format(String format, Object... args)void print(float fnum)void print(double dnum)void print(String str)void print(Object obj)void print(char ch)void print(char[] charArray)void print(long lnum)void print(int inum)void print(boolean bool)PrintWriter printf(Locale l, String format, Object... args)PrintWriter printf(String format, Object... args)void println()void println(float f)void println(int i)void println(long l)void println(Object obj)void println(char[] chars)void println(String str)void println(char c)void println(double d)void println(boolean b)void write(char[] buf, int offset, int count)void write(int oneChar)void write(char[] buf)void write(String str, int offset, int count)void write(String str) PrintWriter 源码 package java.io; import java.util.Objects; import java.util.Formatter; import java.util.Locale; import java.nio.charset.Charset; import java.nio.charset.IllegalCharsetNameException; import java.nio.charset.UnsupportedCharsetException; public class PrintWriter extends Writer { protected Writer out; // 自动flush // 所谓“自动flush”,就是每次执行print(), println(), write()函数,都会调用flush()函数; // 而“不自动flush”,则需要我们手动调用flush()接口。 private final boolean autoFlush; // PrintWriter是否右产生异常。当PrintWriter有异常产生时,会被本身捕获,并设置trouble为true private boolean trouble = false; // 用于格式化的对象 private Formatter formatter; private PrintStream psOut = null; // 行分割符 private final String lineSeparator; // 获取csn(字符集名字)对应的Chaset private static Charset toCharset(String csn) throws UnsupportedEncodingException { Objects.requireNonNull(csn, "charsetName"); try { return Charset.forName(csn); } catch (IllegalCharsetNameException|UnsupportedCharsetException unused) { // UnsupportedEncodingException should be thrown throw new UnsupportedEncodingException(csn); } } // 将“Writer对象out”作为PrintWriter的输出流,默认不会自动flush,并且采用默认字符集。 public PrintWriter (Writer out) { this(out, false); } // 将“Writer对象out”作为PrintWriter的输出流,autoFlush的flush模式,并且采用默认字符集。 public PrintWriter(Writer out, boolean autoFlush) { super(out); this.out = out; this.autoFlush = autoFlush; lineSeparator = java.security.AccessController.doPrivileged( new sun.security.action.GetPropertyAction("line.separator")); } // 将“输出流对象out”作为PrintWriter的输出流,不自动flush,并且采用默认字符集。 public PrintWriter(OutputStream out) { this(out, false); } // 将“输出流对象out”作为PrintWriter的输出流,autoFlush的flush模式,并且采用默认字符集。 public PrintWriter(OutputStream out, boolean autoFlush) { // new OutputStreamWriter(out):将“字节类型的输出流”转换为“字符类型的输出流” // new BufferedWriter(...): 为输出流提供缓冲功能。 this(new BufferedWriter(new OutputStreamWriter(out)), autoFlush); // save print stream for error propagation if (out instanceof java.io.PrintStream) { psOut = (PrintStream) out; } } // 创建fileName对应的OutputStreamWriter,进而创建BufferedWriter对象;然后将该BufferedWriter作为PrintWriter的输出流,不自动flush,采用默认字符集。 public PrintWriter(String fileName) throws FileNotFoundException { this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName))), false); } // 创建fileName对应的OutputStreamWriter,进而创建BufferedWriter对象;然后将该BufferedWriter作为PrintWriter的输出流,不自动flush,采用字符集charset。 private PrintWriter(Charset charset, File file) throws FileNotFoundException { this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), charset)), false); } // 创建fileName对应的OutputStreamWriter,进而创建BufferedWriter对象;然后将该BufferedWriter作为PrintWriter的输出流,不自动flush,采用csn字符集。 public PrintWriter(String fileName, String csn) throws FileNotFoundException, UnsupportedEncodingException { this(toCharset(csn), new File(fileName)); } // 创建file对应的OutputStreamWriter,进而创建BufferedWriter对象;然后将该BufferedWriter作为PrintWriter的输出流,不自动flush,采用默认字符集。 public PrintWriter(File file) throws FileNotFoundException { this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file))), false); } // 创建file对应的OutputStreamWriter,进而创建BufferedWriter对象;然后将该BufferedWriter作为PrintWriter的输出流,不自动flush,采用csn字符集。 public PrintWriter(File file, String csn) throws FileNotFoundException, UnsupportedEncodingException { this(toCharset(csn), file); } private void ensureOpen() throws IOException { if (out == null) throw new IOException("Stream closed"); } // flush“PrintWriter输出流中的数据”。 public void flush() { try { synchronized (lock) { ensureOpen(); out.flush(); } } catch (IOException x) { trouble = true; } } public void close() { try { synchronized (lock) { if (out == null) return; out.close(); out = null; } } catch (IOException x) { trouble = true; } } // flush“PrintWriter输出流缓冲中的数据”,并检查错误 public boolean checkError() { if (out != null) { flush(); } if (out instanceof java.io.PrintWriter) { PrintWriter pw = (PrintWriter) out; return pw.checkError(); } else if (psOut != null) { return psOut.checkError(); } return trouble; } protected void setError() { trouble = true; } protected void clearError() { trouble = false; } // 将字符c写入到“PrintWriter输出流”中。c虽然是int类型,但实际只会写入一个字符 public void write(int c) { try { synchronized (lock) { ensureOpen(); out.write(c); } } catch (InterruptedIOException x) { Thread.currentThread().interrupt(); } catch (IOException x) { trouble = true; } } // 将“buf中从off开始的len个字符”写入到“PrintWriter输出流”中。 public void write(char buf[], int off, int len) { try { synchronized (lock) { ensureOpen(); out.write(buf, off, len); } } catch (InterruptedIOException x) { Thread.currentThread().interrupt(); } catch (IOException x) { trouble = true; } } // 将“buf中的全部数据”写入到“PrintWriter输出流”中。 public void write(char buf[]) { write(buf, , buf.length); } // 将“字符串s中从off开始的len个字符”写入到“PrintWriter输出流”中。 public void write(String s, int off, int len) { try { synchronized (lock) { ensureOpen(); out.write(s, off, len); } } catch (InterruptedIOException x) { Thread.currentThread().interrupt(); } catch (IOException x) { trouble = true; } } // 将“字符串s”写入到“PrintWriter输出流”中。 public void write(String s) { write(s, , s.length()); } // 将“换行符”写入到“PrintWriter输出流”中。 private void newLine() { try { synchronized (lock) { ensureOpen(); out.write(lineSeparator); if (autoFlush) out.flush(); } } catch (InterruptedIOException x) { Thread.currentThread().interrupt(); } catch (IOException x) { trouble = true; } } // 将“boolean数据对应的字符串”写入到“PrintWriter输出流”中,print实际调用的是write函数 public void print(boolean b) { write(b ? "true" : "false"); } // 将“字符c对应的字符串”写入到“PrintWriter输出流”中,print实际调用的是write函数 public void print(char c) { write(c); } // 将“int数据i对应的字符串”写入到“PrintWriter输出流”中,print实际调用的是write函数 public void print(int i) { write(String.valueOf(i)); } // 将“long型数据l对应的字符串”写入到“PrintWriter输出流”中,print实际调用的是write函数 public void print(long l) { write(String.valueOf(l)); } // 将“float数据f对应的字符串”写入到“PrintWriter输出流”中,print实际调用的是write函数 public void print(float f) { write(String.valueOf(f)); } // 将“double数据d对应的字符串”写入到“PrintWriter输出流”中,print实际调用的是write函数 public void print(double d) { write(String.valueOf(d)); } // 将“字符数组s”写入到“PrintWriter输出流”中,print实际调用的是write函数 public void print(char s[]) { write(s); } // 将“字符串数据s”写入到“PrintWriter输出流”中,print实际调用的是write函数 public void print(String s) { if (s == null) { s = "null"; } write(s); } // 将“对象obj对应的字符串”写入到“PrintWriter输出流”中,print实际调用的是write函数 public void print(Object obj) { write(String.valueOf(obj)); } // 将“换行符”写入到“PrintWriter输出流”中,println实际调用的是write函数 public void println() { newLine(); } // 将“boolean数据对应的字符串+换行符”写入到“PrintWriter输出流”中,println实际调用的是write函数 public void println(boolean x) { synchronized (lock) { print(x); println(); } } // 将“字符x对应的字符串+换行符”写入到“PrintWriter输出流”中,println实际调用的是write函数 public void println(char x) { synchronized (lock) { print(x); println(); } } // 将“int数据对应的字符串+换行符”写入到“PrintWriter输出流”中,println实际调用的是write函数 public void println(int x) { synchronized (lock) { print(x); println(); } } // 将“long数据对应的字符串+换行符”写入到“PrintWriter输出流”中,println实际调用的是write函数 public void println(long x) { synchronized (lock) { print(x); println(); } } // 将“float数据对应的字符串+换行符”写入到“PrintWriter输出流”中,println实际调用的是write函数 public void println(float x) { synchronized (lock) { print(x); println(); } } // 将“double数据对应的字符串+换行符”写入到“PrintWriter输出流”中,println实际调用的是write函数 public void println(double x) { synchronized (lock) { print(x); println(); } } // 将“字符数组x+换行符”写入到“PrintWriter输出流”中,println实际调用的是write函数 public void println(char x[]) { synchronized (lock) { print(x); println(); } } // 将“字符串x+换行符”写入到“PrintWriter输出流”中,println实际调用的是write函数 public void println(String x) { synchronized (lock) { print(x); println(); } } // 将“对象o对应的字符串+换行符”写入到“PrintWriter输出流”中,println实际调用的是write函数 public void println(Object x) { String s = String.valueOf(x); synchronized (lock) { print(s); println(); } } // 将“数据args”根据“默认Locale值(区域属性)”按照format格式化,并写入到“PrintWriter输出流”中 public PrintWriter printf(String format, Object ... args) { return format(format, args); } // 将“数据args”根据“Locale值(区域属性)”按照format格式化,并写入到“PrintWriter输出流”中 public PrintWriter printf(Locale l, String format, Object ... args) { return format(l, format, args); } // 根据“默认的Locale值(区域属性)”来格式化数据 public PrintWriter format(String format, Object ... args) { try { synchronized (lock) { ensureOpen(); if ((formatter == null) || (formatter.locale() != Locale.getDefault())) formatter = new Formatter(this); formatter.format(Locale.getDefault(), format, args); if (autoFlush) out.flush(); } } catch (InterruptedIOException x) { Thread.currentThread().interrupt(); } catch (IOException x) { trouble = true; } return this; } // 根据“Locale值(区域属性)”来格式化数据 public PrintWriter format(Locale l, String format, Object ... args) { try { synchronized (lock) { ensureOpen(); if ((formatter == null) || (formatter.locale() != l)) formatter = new Formatter(this, l); formatter.format(l, format, args); if (autoFlush) out.flush(); } } catch (InterruptedIOException x) { Thread.currentThread().interrupt(); } catch (IOException x) { trouble = true; } return this; } // 将“字符序列的全部字符”追加到“PrintWriter输出流中” public PrintWriter append(CharSequence csq) { if (csq == null) write("null"); else write(csq.toString()); return this; } // 将“字符序列从start(包括)到end(不包括)的全部字符”追加到“PrintWriter输出流中” public PrintWriter append(CharSequence csq, int start, int end) { CharSequence cs = (csq == null ? "null" : csq); write(cs.subSequence(start, end).toString()); return this; } // 将“字符c”追加到“PrintWriter输出流中” public PrintWriter append(char c) { write(c); return this; } }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
Java中的PrintWriter 介绍_动力节点Java学院整理
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
Java中的PrintWriter 介绍_动力节点Java学院整理
PrintWriter 介绍PrintWriter 是字符类型的打印输出流,它继承于Writer。PrintStream 用于向文本输出流打印对象的格式化表示形式。它实现在 PrintStream 中的所有 print 方法。它不包含用于写
2023-05-31
Java 中的 BufferedWriter 介绍_动力节点Java学院整理
BufferedWriter 介绍BufferedWriter 是缓冲字符输出流。它继承于Writer。BufferedWriter 的作用是为其他字符输出流添加一些缓冲功能。BufferedWriter 函数列表 // 构造函数Buffe
2023-05-31
ObjectInputStream 和 ObjectOutputStream 介绍_动力节点Java学院整理
ObjectInputStream 和 ObjectOutputStream 的作用是,对基本数据和对象进行序列化操作支持。创建“文件输出流”对应的ObjectOutputStream对象,该ObjectOutputStream对象能提供对
2023-05-31
Java中Random简介_动力节点Java学院整理
Java中存在着两种Random函数:一、java.lang.Math.Random; 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返
2023-05-31
Java Set简介_动力节点Java学院整理
1. 概述 Java 中的Set和正好和数学上直观的集(set)的概念是相同的。Set最大的特性就是不允许在其中存放的元素是重复的。根据这个特点,我们就可以使用Set 这个接口来实现前面提到的关于商品种类的存储需求。Se
2023-05-31
Java Map简介_动力节点Java学院整理
Map简介将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。 Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关
2023-05-31
Java中的FilterOutputStream 简介_动力节点Java学院整理
FilterOutputStream 介绍FilterOutputStream 的作用是用来“封装其它的输出流,并为它们提供额外的功能”。它主要包括BufferedOutputStream, DataOutputStream和PrintSt
2023-05-31
redis简介_动力节点Java学院整理
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案。Redis官方网网站是:http://www.redis.io/,如下:Redis 有三个主要使其有别于其它很多竞争对手的特点:
2022-06-04
JDBC简介_动力节点Java学院整理
前言:什么是JDBC维基百科的简介: Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。J
2023-05-31
Ehcache简介_动力节点Java学院整理
使用Spring的AOP进行整合,可以灵活的对方法的返回结果对象进行缓存。CachingFilter功能可以对HTTP响应的内容进行缓存。1、主要特性 1. 快速. 2. 简单. 3. 多种缓存策略 4. 缓
2023-05-31
Java中的Web MVC简介_动力节点Java学院整理
Web开发中的请求-响应模型:在Web世界里,具体步骤如下:1、Web浏览器(如IE)发起请求。2、Web服务器(如Tomcat)接收请求,处理请求(比如用户新增,则将把用户保存一下),最后产生响应(一般为html)。3、web服务器处理完
2023-05-31
Java分页简介_动力节点Java学院整理
什么是分页技术分页,是一种将所有数据分段展示给用户的技术.用户每次看到的不是全部数据,而是其中的一部分,如果在其中没有找到自习自己想要的内容,用户可以通过制定页码或是翻页的方式转换可见内容,直到找到自己想要的内容为止.其实这和我们阅读书籍很
2023-05-31
Java Socket编程简介_动力节点Java学院整理
对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有So
2023-05-31
Java多态(动力节点Java学院整理)
什么是多态1. 面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。2. 多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用
2023-05-31
Java死锁_动力节点Java学院整理
死锁是两个甚至多个线程被永久阻塞时的一种运行局面,这种局面的生成伴随着至少两个线程和两个或者多个资源。在这里我已写好一个简单的程序,它将会引起死锁方案然后我们就会明白如何分析它。Java死锁范例ThreadDeadlock.javapack
2023-05-31
servlet之session简介_动力节点Java学院整理
Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,注意是默认情况下,一个浏览器独占一个session,由于session为用户浏览器独享,所以用户在访问服务器的web资源时
2023-05-31
JVM(Java虚拟机)简介(动力节点Java学院整理)
一、概要1.Java虚拟机(Jvm)是什么?2.Java虚拟机是用来干什么的?3.Java虚拟机它的体系结构是什么样子的?4.Java虚拟机在工作做扮演什么角色?5.Java虚拟机在运行时数据区?二、Jvm基础概念Java虚拟机(Jvm)是
2023-05-31
Java中StringBuffer和StringBuilder_动力节点Java学院整理
下面先给大家介绍下String、StringBuffer、StringBuilder区别,具体详情如下所示:StringBuffer、StringBuilder和String一样,也用来代表字符串。String类是不可变类,任何对Strin
2023-05-31
Java 中HashCode作用_动力节点Java学院整理
第1 部分 hashCode的作用 Java集合中有两类,一类是List,一类是Set他们之间的区别就在于List集合中的元素师有序的,且可以重复,而Set集合中元素是无序不可重复的。对于List好处理,但是对于Set而言我们要如何来保证
2023-05-31
Java中的关键字_动力节点Java学院整理
Java中常用关键字:与数据类型相关(10)与流程控制相关(13)if: 表示条件判断,一般用法if(关系表达式),后跟else或{……}else: 条件转折,如if (关系表达式){语句块1}else{语句块2},如果关系表达式的值为tr
2023-05-31