打印流

  • 在整个IO包中,打印流是输出信息最方便的类,主要包含字节打印流PrintStream)和字符打印流PrintWrite)。打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字符串等等,相对于前面学习的几个文件的操作来说,这里的打印流是最简便的一个类了

PrintStream

  • 主要功能是格式化的将内容写入文件,并不是打印在控制台上
  • PrintStream最大的好处就是可以格式化的输出,相信学过c的朋友都知道prinf这格式化输出函数,这里的PrintStream实现了更加简单的格式化输出,不需要使用什么%d,%f了,只需要都是用%s即可,这个很像python
  • PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。在需要写入字符而不是写入字节的情况下,应该使用 PrintWriter 类。

构造函数

  • PrintStream(File file) 创建具有指定文件且不带自动行刷新的新打印流。
  • PrintStream(OutputStream out) 创建新的打印流。
  • PrintStream(OutputStream out, boolean autoFlush) 创建新的打印流,并且设置自动刷新
  • PrintStream(String fileName) 创建具有指定文件名称且不带自动行刷新的新打印流。
File file_2=new File("/tmp"+File.separator+"test"+File.separator+"test.txt");
PrintStream printStream=new PrintStream(file_2); //直接使用File
PrintStream printStream=new PrintStream(new FileOutputStream(file_2)); //使用OutputStream的子类FileOutputStream

常用的函数

  • PrintStream append(char c) 在此输入流的后面追加字符。
  • PrintStream append(CharSequence csq) 将指定字符序列添加到此输出流。
  • PrintStream append(CharSequence csq, int start, int end) 将指定字符序列的子序列添加到此输出流。
  • print() 打印常用的数据类型,比如String,char,int ,double,float,boolean,long,short
  • println() 打印常用的数据类型,但是带有换行符
  • printf(String format, Object... args) 使用指定格式字符串和参数将格式化的字符串写入此输出流的便捷方法。
  • format(String format, Object... args) 使用指定格式字符串和参数将格式化字符串写入此输出流中。
  • close()
  • flush()

实例

 package IO;

import java.io.*;

/**
* Created by chenjiabing on 17-5-25.
*/ /**test.txt文件中的结果如下:
陈加兵
2299.9
姓名:陈加兵,n年龄:22,成绩:99.9
姓名:陈加兵,n年龄:22,成绩:99.9
c
chenjiabi
*/ public class demo9 {
public static void main(String[] args) {
PrintStream printStream = null;
File file_1 = new File("/tmp" + File.separator + "test");
File file_2 = new File("/tmp" + File.separator + "test" + File.separator + "test.txt");
if (!file_1.exists()) {
file_1.mkdir();
System.out.println("文件创建成功");
} try {
// PrintStream printStream=new PrintStream(file_2);
printStream = new PrintStream(new FileOutputStream(file_2));
String name = "陈加兵";
int age = 22;
float grade = 99.9f; printStream.println(name);//println() printStream.print(age);//print() printStream.println(grade);//print() printStream.format("姓名:%s,n年龄:%s,成绩:%s%s", name, age, grade, "\n");//format() printStream.printf("姓名:%s,n年龄:%s,成绩:%s%s", name, age, grade, "\n"); printStream.append('c'); //append
printStream.append("\nchenjiabing",0,10); //append
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (printStream != null) {
printStream.flush();
printStream.close();
}
} }
}

PrintWriter

  • 继承Writer,主要针对的是字符流的操作
  • 向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。
  • PrintStream 类不同,如果启用了自动刷新,则只有在调用 printlnprintfformat 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。
  • 此类中的方法不会抛出 I/O 异常,尽管其某些构造方法可能抛出异常。客户端可能会查询调用 checkError() 是否出现错误。

构造函数

  • PrintWriter(File file) 使用指定文件创建不具有自动行刷新的新 PrintWriter
  • PrintWriter(OutputStream out) 根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter
  • PrintWriter(OutputStream out, boolean autoFlush) 通过现有的 OutputStream 创建新的 PrintWriter
  • PrintWriter(String fileName) 创建具有指定文件名称且不带自动行刷新的新 PrintWriter

常用函数

这里的常用到的函数和PrintStream的差不多就不再详细的列出来了,详情请看帮助文档

实例

package IO;

import java.io.*;

/**
* Created by chenjiabing on 17-5-25.
*/
public class demo10 {
public static void main(String[] args)
{
PrintWriter printWriter=null;
File file=new File("/tmp"+File.separator+"test"+File.separator+"file.txt");
try {
printWriter=new PrintWriter(new FileOutputStream(file));
printWriter.println("chenjiabing");
printWriter.println("陈加兵");
}catch (IOException e)
{
e.printStackTrace();
}finally {
if(printWriter!=null)
{
printWriter.close();
}
} }
}

参考文章

Java IO学习笔记六的更多相关文章

  1. Java IO学习笔记六:NIO到多路复用

    作者:Grey 原文地址:Java IO学习笔记六:NIO到多路复用 虽然NIO性能上比BIO要好,参考:Java IO学习笔记五:BIO到NIO 但是NIO也有问题,NIO服务端的示例代码中往往会包 ...

  2. Java IO学习笔记:概念与原理

    Java IO学习笔记:概念与原理   一.概念   Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...

  3. Java IO学习笔记总结

    Java IO学习笔记总结 前言 前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下 基本的文件操作 字符流和字节流的操作 InputStreamReader和OutputStreamW ...

  4. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  5. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

  6. Java IO学习笔记一

    Java IO学习笔记一 File File是文件和目录路径名的抽象表示形式,总的来说就是java创建删除文件目录的一个类库,但是作用不仅仅于此,详细见官方文档 构造函数 File(File pare ...

  7. Java IO学习笔记一:为什么带Buffer的比不带Buffer的快

    作者:Grey 原文地址:Java IO学习笔记一:为什么带Buffer的比不带Buffer的快 Java中为什么BufferedReader,BufferedWriter要比FileReader 和 ...

  8. Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer

    作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...

  9. Java IO学习笔记三:MMAP与RandomAccessFile

    作者:Grey 原文地址:Java IO学习笔记三:MMAP与RandomAccessFile 关于RandomAccessFile 相较于前面提到的BufferedReader/Writer和Fil ...

随机推荐

  1. [移动端] IOS下border-image不起作用的解决办法

    上周五突然接到现场的一个需求,做一个移动端的劳模展示页面.现场美工把原型图发了过来.这个样子的: 说实在的很想吐槽一下我们美工的审美哈,不过这不是重点. 因为边框是需要特殊花纹的所以打算用border ...

  2. 忘记了root密码,如何进入系统?

    Issue 问题 忘记了root密码不能进入系统 如何进入系统? 环境 红帽企业版Linux所有版本 解决方法 可以进入单用户模式或者援救模式来改变root密码,如何进入单用户模式取决引导加载程序. ...

  3. JSP动态员工登陆案例

    package web; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import j ...

  4. 基于Spring的轻量级工作流框架

    项目地址 码云:https://git.oschina.net/null_584_3382/business-flow-parent github:https://github.com/Athlizo ...

  5. 【初识Python】

    一.Python的简介 1.什么是python? Python(发音:[ 'paiθ(ə)n; (US) 'paiθɔn ]),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用 ...

  6. js 正则表达式验证

    验证数字的正则表达式集 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9 ...

  7. 如何在WebGL全景图上做标记

    WebGL可以用来做3D效果的全景图呈现,例如故宫的全景图.但有时候我们不仅仅只是呈现全景图,还需要增加互动.故宫里边可以又分了很多区域,例如外朝中路.外朝西路.外朝东路等等.我们需要在3D图上做一些 ...

  8. 清理我的 Mac

    在Macbook使用久之后,会发现本来还富裕的硬盘,变得越来越少,尤其现在Macbook使用容量很小的固态硬盘.在此种情况下,该如何清理Macbook垃圾文件,以保证Macbook有足够空间做其他事情 ...

  9. 升讯威微信营销系统开发实践:(5) Github 源码:微信接口的 .NET 封装。

    微信开发系列教程,将以一个实际的微信平台项目为案例,深入浅出的讲解微信开发.应用各环节的实现方案和技术细节. 本系列教程的最终目标是完成一个功能完善并达到高可用性能指标的微信管理软件,所以除了与微信本 ...

  10. Gitlab使用Webhook实现Push代码自动部署

    1.Jenkins 安装完成以后,首先我们在Jenkins中需要安装一下,Gitlab Hook Plugin 插件: 2.插件安装完成我们创建任务,在任务重构建触发器下获取回调URL: 注意: 注意 ...