Java 日看一类(47)之IO包中的PrintWriter

别再让CPU干GPU的活了:CST Studio Suite GPU加速深度调优指南(从驱动版本到任务管理器监控) 本文深入探讨了CST Studio Suite的GPU加速深度调优方法,从NVIDIA驱动版本选择到系统级资源管理,再到实时监控与瓶颈诊断技术。通过科学的驱动优化、GPU资源管理策略和高级调优技巧,显著提升仿真效率,特别适合电磁仿真工程师和硬件加速需求的专业用户。 阅读详情

该类继承自Writer类

引入了如下包:

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;


类头注释如下:

/**
 * Prints formatted representations of objects to a text-output stream.  This
 * class implements all of the <tt>print</tt> methods found in {@link
 * PrintStream}.  It does not contain methods for writing raw bytes, for which
 * a program should use unencoded byte streams.
 *
 * <p> Unlike the {@link PrintStream} class, if automatic flushing is enabled
 * it will be done only when one of the <tt>println</tt>, <tt>printf</tt>, or
 * <tt>format</tt> methods is invoked, rather than whenever a newline character
 * happens to be output.  These methods use the platform's own notion of line
 * separator rather than the newline character.
 *
 * <p> Methods in this class never throw I/O exceptions, although some of its
 * constructors may.  The client may inquire as to whether any errors have
 * occurred by invoking {@link #checkError checkError()}.
 *
 * @author      Frank Yellin
 * @author      Mark Reinhold
 * @since       JDK1.1
 */

大意如下:

向文本输出流打印对象的格式化表现形式

该类完成了全部的print方法(来自于PrintStream)

该类无写出原始byte数据的方法,对于这些字节,程序应选用为编码的字节流输出

不同于PrintStream类,如果自动自动刷新开启,程序将会在调用println,printf,format方法后自动刷新,而不是当新行符被输出时刷新

这些方法使用了各自操作系统规定的行分隔符概念而不是新行符

该类的方法永远不会抛出IO异常,尽管该类的一些构造函数会抛出

使用者需要查询是否有错误产生时需要调用checkError函数



该类含有如下的成员变量:

内含的字符输出流

protected Writer out;

自动刷新开启标识

private final boolean autoFlush;

是否产生错误标识

private boolean trouble = false;

格式转化器

private Formatter formatter;

内含的打印流

private PrintStream psOut = null;

系统行分隔符

private final String lineSeparator;



该类含有如下的成员方法:

返回输入字符串所代表的编码集

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

构造函数(给予内嵌的字符输出流,默认不自动刷新

public PrintWriter (Writer out) {
    this(out, false);
}

构造函数(给予内嵌字符输出流,给予刷新判断

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"));//获得使用的行分隔符
}

构造函数(绑定字节输出流,默认不自动刷新

public PrintWriter(OutputStream out) {
    this(out, false);
}

构造函数(绑定字节输出流,给予刷新判断

public PrintWriter(OutputStream out, boolean autoFlush) {
    this(new BufferedWriter(new OutputStreamWriter(out)), autoFlush);//将该输出流转化为字符输出流

    // save print stream for error propagation
    if (out instanceof java.io.PrintStream) {//检测是否为PrintStream类
        psOut = (PrintStream) out;
    }
}

构造函数(给予输出文件路径

public PrintWriter(String fileName) throws FileNotFoundException {
    this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName))),//构造文件字符输出流
         false);
}

构造函数(给予使用的字符集,给予输出文件

private PrintWriter(Charset charset, File file)
    throws FileNotFoundException
{
    this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), charset)),
         false);
}

构造函数(给予文件路径,给予字符集名称

public PrintWriter(String fileName, String csn)
    throws FileNotFoundException, UnsupportedEncodingException
{
    this(toCharset(csn), new File(fileName));
}

构造函数(给予输出文件

public PrintWriter(File file) throws FileNotFoundException {
    this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file))),
         false);
}

构造函数(给予输出文件,给予字符集名称

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

刷新该流

public void flush() {
    try {
        synchronized (lock) {//lock是Writer中声明的成员变量,保证对输出流的同步操作
            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;
    }
}

检测当前是否发生过异常

public boolean checkError() {
    if (out != null) {//首先刷新流,写出数据
        flush();
    }
    if (out instanceof java.io.PrintWriter) {//检测该输出流是否是PrintWriter流
        PrintWriter pw = (PrintWriter) out;
        return pw.checkError();
    } else if (psOut != null) {//再检测是否有PrintStream
        return psOut.checkError();
    }
    return trouble;//都不是或者都没有就抛出自身的
}

设置错误标志位

protected void setError() {
    trouble = true;
}

清除错误标志位

protected void clearError() {
    trouble = false;
}

写出单个字符(传入的是Ascii码

public void write(int c) {
    try {
        synchronized (lock) {
            ensureOpen();
            out.write(c);
        }
    }
    catch (InterruptedIOException x) {
        Thread.currentThread().interrupt();
    }
    catch (IOException x) {
        trouble = true;
    }
}

写出字符数组(特定区间

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

写出整个字符数组

public void write(char buf[]) {
    write(buf, 0, buf.length);
}

写出字符串的特定区间

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

写出整个字符串

public void write(String s) {
    write(s, 0, s.length());
}

写出换行

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

打印bool类型

public void print(boolean b) {
    write(b ? "true" : "false");
}

打印单个字节

public void print(char c) {
    write(c);
}

打印整形数字

public void print(int i) {
    write(String.valueOf(i));//实际输入字符串
}

打印长整型

public void print(long l) {
    write(String.valueOf(l));
}

打印浮点型

public void print(float f) {
    write(String.valueOf(f));
}

打印双精度

public void print(double d) {
    write(String.valueOf(d));
}

打印字符数组

public void print(char s[]) {
    write(s);
}

打印字符串

public void print(String s) {
    if (s == null) {
        s = "null";
    }
    write(s);
}

打印对象

public void print(Object obj) {
    write(String.valueOf(obj));//对象的字符串化,目前还没看过lang包,不是很清楚具体实现
}

打印换行符

public void println() {
    newLine();
}

打印bool加换行

public void println(boolean x) {
    synchronized (lock) {//主要保证下面两条被顺序执行且不受其他线程干扰
        print(x);
        println();
    }
}

打印字符并换行

public void println(char x) {
    synchronized (lock) {
        print(x);
        println();
    }
}

打印整形并换行

public void println(int x) {
    synchronized (lock) {
        print(x);
        println();
    }
}

打印长整型并换行

public void println(long x) {
    synchronized (lock) {
        print(x);
        println();
    }
}

打印浮点型并换行

public void println(float x) {
    synchronized (lock) {
        print(x);
        println();
    }
}

打印双精度加换行

public void println(double x) {
    synchronized (lock) {
        print(x);
        println();
    }
}

打印字符数组加换行

public void println(char x[]) {
    synchronized (lock) {
        print(x);
        println();
    }
}
打印字符串加换行
public void println(String x) {
    synchronized (lock) {
        print(x);
        println();
    }
}

打印对象加换行

public void println(Object x) {
    String s = String.valueOf(x);
    synchronized (lock) {
        print(s);
        println();
    }
}

打印特定格式的对象数据

public PrintWriter printf(String format, Object ... args) {
    return format(format, args);
}

打印根据特定地方和特定格式的对象数据

public PrintWriter printf(Locale l, String format, Object ... args) {
    return format(l, format, args);
}

为该类构建格式转化器(使用默认地理信息

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

构建格式转化器(使用给定的地理信息

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

向缓冲区中添加字符序列(主要是为了返回当前对象

public PrintWriter append(CharSequence csq) {
    if (csq == null)
        write("null");
    else
        write(csq.toString());
    return this;
}

向缓冲区中添加字符序列(特定区间

public PrintWriter append(CharSequence csq, int start, int end) {
    CharSequence cs = (csq == null ? "null" : csq);
    write(cs.subSequence(start, end).toString());
    return this;
}

向缓冲区中添加字符

public PrintWriter append(char c) {
    write(c);
    return this;
}



对于该类,你可以理解为是PrintStream的字符流形式。除了需要注意autoFlush的刷新机制不同以外(刷新判断位置在格式输出和创建新行下,与PrintStream不太一样,因此效果也有所不同),该类并不对字节流服务,使用字节流就请使用PrintStream

反爬虫:对抗最新反爬技术 Cloudflare详解 本文针对Cloudflare最新反爬机制提供完整解决方案,覆盖TLS指纹、行为轨迹、设备指纹等检测场景。文章首先分析Cloudflare的三重检测体系(TLS指纹、行为指纹、设备指纹)及其拦截表现,随后提出四种绕过方案:1)使用curl_cffi模拟浏览器TLS指纹;2)通过undetected-chromedriver移除自动化特征;3)Playwright结合stealth插件模拟人类行为;4)动态请求调度策略。重点推荐轻量级Python方案curl_cffi和浏览器自动化方案Playwright-st 阅读详情

相关推荐

上机笔试题目:取出指定条件二维数组的子数组

取出指定条件二维数组的子数组: 1)传入参数为: 参数一:String[][]sArray2字符串二维数组 参数二:Stringkey字符串 参数三:StringkeyFormat含匹配符的字符串,如下:%0-%1,其中%x含义如为:一维数据列序号为x的值。 keyFormat 可以为 %0-%1-%2,%0-%3-%8-%x...... 例子如下...

91奔跑的蜗牛 636

java printwriter 包_【java I/O流总结】PrintWriter总结

PrintWriter是字符输出流一个重要的方法,其源码非常简单易懂。下面基于源码来分析PrintWriter跟之前的BufferWriter、FileWriter之间的区别。构造函数public PrintWriter(Writer out,boolean autoFlush) {super(out);this.out = out;this.autoFlush = autoFlush;lineS...

weixin_29168813的博客 575

黑五数据集实战:从消费者行为解码到零售智能决策

零售智能决策依赖对消费者行为的深度理解,其核心在于将结构化字段还原为真实商业动作。本文基于经典Black Friday数据集,系统阐释如何通过字段语义重定义、业务驱动的特征工程、轻量高效模型(如LightGBM)及定制化损失函数,构建可落地的库存预警、流失拦截与动线优化方案。重点融合‘消费人格指纹’与‘生态位稳定性分’两大热词,揭示数据背后的城市引力场、品类竞争网络与决策节奏图谱,为电商、快消及零售从业者提供从数据分析到业务闭环的完整方法论。

weixin_28630185的博客 346

Java IO操作之 PrintWriter (超详细解析,使用方法说明)

PrintWriter 缓冲 Java默认的缓冲区大小是8kb的字节缓冲。也就是8192个字节。 缓冲的作用 应用程序每一次进行I/O操作都需要和设备进行通信,而且通信效率非常低。因此缓冲区的存在,大大提高了I/O效率。 例如写入设备时,每一次通信时,尽可能多的将字节流写入缓冲区,然后等到缓冲区满了(使用flush()或者close()),将数据一次性写入设备。这样一来,避免每写入一个字节都需要与设备进行一次通信的操作。大大提高了效率。 flush()&close() 代码示例1 package f

Viper的程序员修炼手册 1万+

C# 实现文件和字符串的AES加密解密

C# 实现文件和字符串的AES128加密解密

m0_72044573的博客 5935

Python和Spyder:一个完美的编程组合

而Spyder作为一个专门为科学计算和数据分析而设计的IDE,提供了高效的开发环境和丰富的工具。无论是初学者还是专业开发者,Python和Spyder都能满足他们的需求,并为他们的工作带来便利和效率。本文将探讨Python和Spyder之间的关系,以及它们如何相互配合,提供一流的编程体验。每个工具都有其特定的优势和适用场景,开发者可以根据自己的需求选择合适的工具。而Spyder作为一个专门为科学计算而设计的IDE,提供了编写、调试和执行Python代码的环境。

CodeHeroicX的博客 1125

PrintWriter的使用

PrintWriter的使用 java.io.PrintWriter 具有自动行刷新的缓冲字符输出流,特点是可以按行写出字符串,并且可以自动行刷新。 java.io.BufferedWriter是缓冲字符输出流,内部有缓冲区可以进行块写操作提供效率, 而PrintWriter就是通过连接它实现的缓冲功能(PW的很多构造方法内部自动连接它)。 PW支持两个直接对文件写操作的构造方法: * ...

thedarkclouds的博客 4万+

用Python爬虫抓取大宗交易成交数据:全面解析与实战代码

大宗交易是指在证券市场中,涉及大额买卖的交易。此类交易通常由机构投资者进行,其交易量较大,对市场的影响显著。大宗交易数据包含了买卖双方的成交价格、成交量等关键信息,这些数据对于投资者和分析师而言,具有重要的市场预测意义。Python爬虫是一种自动化抓取互联网上数据的工具。通过爬虫,我们可以定期获取大宗交易数据,节省人工查询的时间。爬虫的工作原理通常包括:发送HTTP请求、获取响应数据、解析网页内容、提取关键信息、存储和展示数据。

2201_76125261的博客 417

PrintWriter打印流示例

PrintWriter pw = response.getWriter(); pw.write("<html>"); pw.write("<body>"); pw.write("6秒钟,跳转到登陆页面"); pw.write("</body>"); pw.write("</html>");

渔舟唱晚,响穷彭蠡之滨 1208

【AI智能体】Dify 搭建个人专属简历美化助手操作详解

Dify 搭建个人专属简历诊断助手实战操作详解

congge 4384

第3.4章 机器人第三方库实战总结(四):G2O优化库从入门到实战(附SLAM实例代码)

自定义边同样是满足复杂应用需求的重要手段。自定义边时,需要明确边所连接的顶点类型以及边所表示的误差项的计算方式。假设我们要定义一条边,用于约束两个上述自定义顶点之间的相对位姿和传感器偏移量关系。我们可以这样定义边类:public:// 计算误差// 计算雅可比矩阵// 读盘和存盘函数,这里暂不实现。

行知SLAM 362

学习PrintWriter类

java.io包 1)首先先知道它的八种构造方法,但怎么记住这八种呢?我们都知道PrintWriter是一种过滤流,也叫处理流。也就是能对字节流和字符流进行处理,所以它会有: PrintWriter(OutputStream out)  根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。 PrintWriter(Writer out)  创建不带自动行刷新

zsw2zkl的专栏 8万+

9、储备池学习:从学习到学习的新范式

本文探讨了基于学习到学习(L2L)框架的储备池计算新范式,提出通过在外循环中优化储备池的超参数(如递归连接权重、输入权重和读出初始化),以提升其在多种任务中的内循环学习性能。研究展示了两种主要实验设置:一是优化储备池用于回归二阶Volterra滤波器任务,显著优于随机基线;二是实现无需调整读出权重、仅依赖内部动态学习非线性函数的能力,表明储备池可快速构建目标函数的内部模型并安装任务先验知识。结合流程图与表格,文章系统呈现了L2L的训练流程、技术细节及实验结果,并讨论了性能提升、泛化能力等开放问题,指出了未来

ujm56789012的博客 506

java io printwriter_java io系列25之 PrintWriter (字符打印输出流)

1 packagejava.io;23 importjava.util.Objects;4 importjava.util.Formatter;5 importjava.util.Locale;6 importjava.nio.charset.Charset;7 importjava.nio.charset.IllegalCharsetNameException;8 importjava.nio....

weixin_36378222的博客 336

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java笔记(二十八)……IO流下 IO包中其他常用类以及编码表问题

PrintWriter打印流 Writer的子类,既可以接收字符流,也可以接收字节流,还可以接收文件名或者文件对象,非常方便 同时,还可以设置自动刷新以及保持原有格式写入各种文本类型的print方法 PrintWriter的小例子:打印字符录入的大写 1: //读取键盘录入,打印大写 2: private static void printWriterMethod() thr...

aev57372的博客 245

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java printwriter format_Java PrintWriter format(String, Object)用法及代码示例

Java中PrintWriter类的format(String,Object)方法用于在流中打印格式化的字符串。该字符串使用指定的格式和作为参数传递的参数进行格式化。用法:public PrintWriter format(String format, Object…args)参数:此方法接受两个强制参数:format这是格式化字符串的格式。args这是格式化字符串的参数个数。它可以是可选的,即根...

weixin_34551573的博客 169

Java IO流字符流简介及基本使用

Java IO流字符流简介及常用字符流的基本使用 字符流分为输入字符流(Writer)和输出字符流(Reader),这两种字符流及其子类字符流都有自己专门的功能。在编码中我们常用的输出字符流有FileWriter、PrintWriter等,而常用的输入字符流有StringReader、FileReader、BufferedReader和InputStreamReader等等。Writer是用于写入字符流的抽象类。它的子类必须实现的唯一方法是write(char [],int,int),flush()和clo

weixin_53470295的博客 188

Java学习47-Java 流(Stream)、文件(File)和IO - 其他流的使用

1.标准输入流System.in/标准输出流System.out System.in : 标准的输入流,默认从键盘输入 System.out: 标准的输出流,默认从显示器输出(理解为控制台输出)System.setOut()方法和 System.setIn()方法(结合下面介绍的打印流举例)2.打印流 实现将基本数据类型的数据格式转化为字符串输出。 打印流:PrintStream 和 PrintWriter如果并不想从键盘输入,也不想从显示器读出,换言之,比如想要 “从一个文件A读取信息,进行处理后再将信息

weixin_42892630的博客 1171

java的io_JAVA基础知识之IO——Java IO体系及常用类

Java IO体系个人觉得可以用“字节流操作类和字符流操作类组成了Java IO体系”来高度概括Java IO体系。借用几张网络图片来说明(图片来自http://blog.youkuaiyun.com/zhangerqing/article/details/8466532 )基于字节的IO操作基于字符的IO操作从上图可以看到,整个Java IO体系都是基于字符流(InputStream/OutputStre...

weixin_42315866的博客 150

【java】打印流的基本实现及java.io.PrintStream、java.io.PrintWriter示例

1 package 打印流; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.OutputStream; 7 8 class MyPrint{ 9 private OutputSt...

weixin_30888707的博客 88

高效IO之Java IO体系(一)

更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 个人觉得可以用“字节流操作类和字符流操作类组成了Java IO体系”来高度概括Java IO体系。 借用几张网络图片来说明(图片来自 http://blog.youkuaiyun.com/zhangerqing/article/details/8466532 ) ** 基于字...

AndroidAlvin的博客 297

Scala IO

目录 1. 读 Source.fromFile 按行读取 读取为字符 读取为字符串 Source读取其他源 Java API FileInputStream FileReader 2. 写 FileWrite PrintWriter RandomAccessFile 1. 读 Source.fromFile 可以读取源包括:File,String,URI,并且可以...

攸的博客 186

java io字符流_Java IO流字符流简介及基本使用

Java IO流字符流简介及常用字符流的基本使用字符流分为输入字符流(Writer)和输出字符流(Reader),这两种字符流及其子类字符流都有自己专门的功能。在编码中我们常用的输出字符流有FileWriter、PrintWriter等,而常用的输入字符流有StringReader、FileReader、BufferedReader和InputStreamReader等等。Writer是用于写入字...

weixin_31232695的博客 205

转:PrintWriter中write与println方法的区别

原文地址:https://blog.youkuaiyun.com/qq_25610165/article/details/57083118 自己遇到的问题是:刚开始学 socket 通讯, 代码运行是好着的,后来 通讯读写流 位置的代码 套在循环内,运行时就卡住了,对比老师代码后发现,老师用的是PrintWriter 的 println() 方法,自己用的是PrintWriter 的 wr...

aosmlc6485的博客 314

java string printf_Java PrintWriter printf(String, Object)用法及代码示例

Java中的PrintWriter类的printf(String,Object)方法用于在流中打印格式化的字符串。该字符串使用指定的格式和作为参数传递的参数进行格式化。用法:public PrintWriter printf(String format, Object…args)参数:此方法接受两个强制参数:format这是格式化字符串的格式。args这是格式化字符串的参数个数。它可以是可选的,即...

weixin_32645173的博客 344

Java IO

Java IO Java IO IO操作在编程中算是重要的知识点了。初学Java,借鉴网上前辈的经验,顺着前辈的思路,自己在demo上做了些修改,方便自己理解。 原博文地址:http://blog.youkuaiyun.com/yczz/article/details/38...

diutan1744的博客 118

字符流转化为字节流_Java IO流字符流简介及基本使用

 Java IO流字符流简介及常用字符流的基本使用    字符流分为输入字符流(Writer)和输出字符流(Reader),这两种字符流及其子类字符流都有自己专门的功能。在编码中我们常用的输出字符流有FileWriter、PrintWriter等,而常用的输入字符流有StringReader、FileReader、BufferedReader和InputStreamReader等等。Writer是...

weixin_39590453的博客 223
上一篇: Java 日看一类(46)之IO包中的PrintStream
下一篇: Java 日看一类(48)之IO包中的PushbackInputStream
wyf95278
博客等级 码龄10年 38粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值