我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录