开发者社区> 温柔的养猫人> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用打印流优化数据输出 | 带你学《Java语言高级特性》之六十五

简介: 为了弥补原始的OutputStream功能的不足,java.io包为开发者提供了打印流:PrintStream类和PrintWriter类,本节将为读者介绍其基本内容和使用方法。
+关注继续查看

上一篇:“有限”的OutputStream | 带你学《Java语言高级特性》之六十四

为了弥补原始的OutputStream功能的不足,java.io包为开发者提供了打印流:PrintStream类和PrintWriter类,本节将为读者介绍其基本内容和使用方法。

【本节目标】
通过阅读本节内容,你将了解到打印流相关类的相关定义和继承关系,了解其相关功能,学会使用打印流实现数据的简单输出和格式化输出的功能。

打印流

但是既然所有的开发者都已经发现了原始中的OutputStream功能的不足,设计者也一定可以发现,所以为了解决输出问题,在java.io包中提供有打印流:PrintStream、PrintWriter。
PrintStream:

public class PrintStream extends FilterOutputStream implements Appendable, Closeable
构造方法:public PrintStream(OutputStream out);

PrintWriter:

public class PrintWriter extends Writer
构造方法:public PrintWriter(OutputStream out);

image.png
打印流

下面使用PrintWriter来实现数据的输出操作。
范例:数据输出

import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        File file = new File("d:" + File.separator +"mldn.txt");   //定义操作文件
        PrintWriter pu = new PrintWriter(new FileOutputStream(file));
        pu.println("姓名:小强子");
        pu.print("年龄:");
        pu.print(78);
        pu.close();
    }
}

从JDK1.5开始,PrintWriter类里面追加有格式化输出的操作支持:

public PrintWriter format(String format, Object... args)

范例:格式化输出

import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        File file = new File("d:" + File.separator +"mldn.txt");   //定义操作文件
        PrintWriter pu = new PrintWriter(new FileOutputStream(file));
        String name="小强子子";
        int age=78;
        double salary=72823.6323113;
        pu.printf("姓名:%s、年龄:%d、月收入:%9.2f",name,age,salary);
        pu.close();
    }
}    //姓名:小强子子、年龄:78、收入:72823.63

比起直接使用OutputStream类,那么使用PrintWriter、PrintStream类的处理操作会更加简单。以后只要是程序进行内容输出的时候全部使用打印流。

想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:System类助力标准IO实现 | 带你学《Java语言高级特性》之六十六
更多Java面向对象编程文章查看此处

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
集合输出 | 带你学《Java语言高级特性》之一百零六
本节介绍了集合输出的四种形式:Iterator迭代输出、ListIterator双向迭代输出、Enumeration枚举输出、foreach输出。
6544 0
反射取得Annotation信息 | 带你学《Java语言高级特性》之九十七
本节介绍了获取Annotation信息的方法,以及Annotation的运行策略,通过案例解释如何实现自定义的Annotation。
1350 0
设置多种数据类型 | 带你学《Java语言高级特性》之九十二
在实际的开发中面对简单Java类中的属性类型一般的可选为:long(Long)、int(Integer)、double(Double)、String、Date(日期、日期时间),我们需要实现各种数据类型的配置。
859 0
级联对象实例化 | 带你学《Java语言高级特性》之九十三
本节需要掌握实现级联对象实例化以及实现对象的级联属性设置。
926 0
单级属性赋值 | 带你学《Java语言高级特性》之九十一
本节需要掌握需要通过反射进行指定类对象的实例化处理,进行内容的设置(Field属性类型、方法名称、要设置的内容)。
755 0
借助转换流打通字节/字符流的关联 | 带你学《Java语言高级特性》之五十八
由于字节流和字符流各有各的优势,在大多数场景中我们往往可以使用转换流InputStreamReader和OutputStreamWriter实现两类流式数据的相互转换,本节将为读者详细介绍转换流。
944 0
使用案例回顾类库相关知识(上) | 带你学《Java语言高级特性》之四十三
回顾之前学习的类库相关知识,我们已经对其基本概念与简单使用有了一个较为全面的了解,现在让我们一起来结合具体的一些案例巩固一下StringBuffer类和Random类的相关内容吧。
872 0
使用案例回顾类库相关知识(下) | 带你学《Java语言高级特性》之四十五
回顾之前学习的类库相关知识,我们已经对其基本概念与简单使用有了一个较为全面的了解,现在让我们一起来结合具体的一些案例巩固一下程序国际化和比较器的相关内容吧。
1181 0
使用案例回顾类库相关知识(中) | 带你学《Java语言高级特性》之四十四
回顾之前学习的类库相关知识,我们已经对其基本概念与简单使用有了一个较为全面的了解,现在让我们一起来结合具体的一些案例巩固一下正则表达式的相关内容吧。
774 0
Comparable助你实现自定义比较 | 带你学《Java语言高级特性》之三十六
上一节中我们已经了解到常规的排序比较功能并不适用于对象,本节将介绍JDK1.2之后Java为开发者提供的Comparable接口的相关内容。
915 0
1170
文章
2
问答
来源圈子
更多
Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载