iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中的PrintWriter 介绍_动力节点Java学院整理
  • 422
分享到

Java中的PrintWriter 介绍_动力节点Java学院整理

javaprintwriterava 2023-05-31 14:05:39 422人浏览 八月长安
摘要

PrintWriter 介绍PrintWriter 是字符类型的打印输出流,它继承于Writer。PrintStream 用于向文本输出流打印对象的格式化表示形式。它实现在 PrintStream 中的所有 print 方法。它不包含用于写

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;   } }

--结束END--

本文标题: Java中的PrintWriter 介绍_动力节点Java学院整理

本文链接: https://www.lsjlt.com/news/226159.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中的PrintWriter 介绍_动力节点Java学院整理
    PrintWriter 介绍PrintWriter 是字符类型的打印输出流,它继承于Writer。PrintStream 用于向文本输出流打印对象的格式化表示形式。它实现在 PrintStream 中的所有 print 方法。它不包含用于写...
    99+
    2023-05-31
    java printwriter ava
  • Java 中的 BufferedWriter 介绍_动力节点Java学院整理
    BufferedWriter 介绍BufferedWriter 是缓冲字符输出流。它继承于Writer。BufferedWriter 的作用是为其他字符输出流添加一些缓冲功能。BufferedWriter 函数列表 // 构造函数...
    99+
    2023-05-31
    java bufferedwriter buf
  • ObjectInputStream 和 ObjectOutputStream 介绍_动力节点Java学院整理
    ObjectInputStream 和 ObjectOutputStream 的作用是,对基本数据和对象进行序列化操作支持。创建“文件输出流”对应的ObjectOutputStream对象,该ObjectOutputStream对象能提供对...
    99+
    2023-05-31
    objectinputstream objectoutputstream npu
  • Java Map简介_动力节点Java学院整理
    Map简介将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。 Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关...
    99+
    2023-05-31
    java map ava
  • Java中Random简介_动力节点Java学院整理
    Java中存在着两种Random函数:一、java.lang.Math.Random;  调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返...
    99+
    2023-05-31
    java random ava
  • Java中的FilterOutputStream 简介_动力节点Java学院整理
    FilterOutputStream 介绍FilterOutputStream 的作用是用来“封装其它的输出流,并为它们提供额外的功能”。它主要包括BufferedOutputStream, DataOutputStream和PrintSt...
    99+
    2023-05-31
    java filteroutputstream ava
  • Java Set简介_动力节点Java学院整理
    1. 概述           Java 中的Set和正好和数学上直观的集(set)的概念是相同的。Set最大的特性就是不允许在其中存放的元素是重复的...
    99+
    2023-05-31
    java set ava
  • JDBC简介_动力节点Java学院整理
    前言:什么是JDBC维基百科的简介:  Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。J...
    99+
    2023-05-31
    jdbc 简介 ava
  • Ehcache简介_动力节点Java学院整理
    使用Spring的AOP进行整合,可以灵活的对方法的返回结果对象进行缓存。CachingFilter功能可以对HTTP响应的内容进行缓存。1、主要特性     1. 快速.  &n...
    99+
    2023-05-31
    ehcache ava hcache
  • Java分页简介_动力节点Java学院整理
    什么是分页技术分页,是一种将所有数据分段展示给用户的技术.用户每次看到的不是全部数据,而是其中的一部分,如果在其中没有找到自习自己想要的内容,用户可以通过制定页码或是翻页的方式转换可见内容,直到找到自己想要的内容为止.其实这和我们阅读书籍很...
    99+
    2023-05-31
    java 分页 ava
  • Java中的Web MVC简介_动力节点Java学院整理
    Web开发中的请求-响应模型:在Web世界里,具体步骤如下:Web浏览器(如IE)发起请求。Web服务器(如Tomcat)接收请求,处理请求(比如用户新增,则将把用户保存一下),最后产生响应(一般为html)。web服务器处理完成后,返回内...
    99+
    2023-05-31
    web mvc 简介
  • Java Socket编程简介_动力节点Java学院整理
    对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有So...
    99+
    2023-05-31
    java socket 编程
  • Java死锁_动力节点Java学院整理
    死锁是两个甚至多个线程被永久阻塞时的一种运行局面,这种局面的生成伴随着至少两个线程和两个或者多个资源。在这里我已写好一个简单的程序,它将会引起死锁方案然后我们就会明白如何分析它。Java死锁范例ThreadDeadlock.javapack...
    99+
    2023-05-31
    java 死锁 ava
  • Java多态(动力节点Java学院整理)
    什么是多态 面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。 多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象...
    99+
    2023-05-31
    java 多态 ava
  • servlet之session简介_动力节点Java学院整理
    Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,注意是默认情况下,一个浏览器独占一个session,由于session为用户浏览器独享,所以用户在访问服务器的web资源时...
    99+
    2023-05-31
    servlet session ava
  • JVM(Java虚拟机)简介(动力节点Java学院整理)
    一、概要Java虚拟机(Jvm)是什么?Java虚拟机是用来干什么的?Java虚拟机它的体系结构是什么样子的?Java虚拟机在工作做扮演什么角色?Java虚拟机在运行时数据区?二、Jvm基础概念Java虚拟机(Jvm)是可运行Java代码的...
    99+
    2023-05-31
    java jvm 虚拟机
  • Java中StringBuffer和StringBuilder_动力节点Java学院整理
    下面先给大家介绍下String、StringBuffer、StringBuilder区别,具体详情如下所示:StringBuffer、StringBuilder和String一样,也用来代表字符串。String类是不可变类,任何对Strin...
    99+
    2023-05-31
    java stringbuffer stringbuilder
  • Java中的关键字_动力节点Java学院整理
    Java中常用关键字:与数据类型相关(10)与流程控制相关(13)if: 表示条件判断,一般用法if(关系表达式),后跟else或{……}else: 条件转折,如if (关系表达式){语句块1}else{语句块2},如果...
    99+
    2023-05-31
    java 关键字 ava
  • Java 中HashCode作用_动力节点Java学院整理
    第1 部分 hashCode的作用  Java集合中有两类,一类是List,一类是Set他们之间的区别就在于List集合中的元素师有序的,且可以重复,而Set集合中元素是无序不可重复的。对于List好处理,但是对于Set而言我们要如何来保证...
    99+
    2023-05-31
    java hashcode
  • Java链接redis_动力节点Java学院整理
    要在Java程序中使用使用操作Redis,需要确保有Redis的Java驱动程序和Java设置在机器上。现在,让我们来看看如何设置Redis的Java驱动程序。 需要下载jedis.jar。请一定要下载它的最新版本。 需要包括jedis...
    99+
    2023-05-31
    java redis 链接
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作