打印流

  • 在整个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. CF798 C. Mike and gcd problem

    /* CF798 C. Mike and gcd problem http://codeforces.com/contest/798/problem/C 数论 贪心 题意:如果一个数列的gcd值大于1 ...

  2. 产品经理学Python:参数传递方式

    这是关于Python的第5篇文章,主要介绍下参数传递方式和如何设计自己的函数. (一) 本篇主要介绍2种参数传递方式. 位置参数 调用函数时,根据函数定义的参数位置来传递参数. def right_t ...

  3. Telegram学习解析系列(一):认识一下Telegram的源码

    前言: Telegram不知道有多少同行听过这玩意,或者在看它的源码.我是出于工作原因才接触到这东西,看的真是的......变方了!一个月估计刚刚找到门,还没进去多深,把自己的心得和对源码的认识以及我 ...

  4. Mysql 忘记root密码后修改root密码

    1.修改my.cnf: 在mysqld进程配置文件中添加skip-grant-tables,添加完成后记住保存. 2.重新启动MYSQL数据库: service mysqld restart 2.修改 ...

  5. linux系统管理--查看进程

    关于进程的查看,大家都不会陌生 ,主要是ps和pstree命令. ps  aux    查看系统中所有进程,使用BSD操作系统格式.(注意:不是ps -aux) 执行结果 USER :该进程是由哪个用 ...

  6. grub 学习之路

    现在,是grub2的天下了呀,虽然网上关于grub2的资料不少,但很多都是就一个方面讨论的,跟着这些教程配置虽然也能够成功,但总是迷迷糊糊,不知这grub2背后到底是怎么实现的.所以决定花时间深入了解 ...

  7. iOS开发常用第三方开源框架 持续更新中...

    键盘管理 TPKeyboardAvoiding IQKeyboardManager(1.2.8) 弹窗HUD MBProgressHUD(0.9.2) SVProgressHUD UIView+Toa ...

  8. jquery和vue对比

    1.jquery介绍:想必大家都用过jquery吧,这个曾经也是现在依然最流行的web前端js库,可是现在无论是国内还是国外他的使用率正在渐渐被其他的js库所代替,随着浏览器厂商对HTML5规范统一遵 ...

  9. C语言socket编程——linux环境

    先写一个服务器端的监听程序,功能室从客户端读取字符,接收到后告知客户端“I got your message: ”+收到的消息:server.c #include <stdio.h> #i ...

  10. RabbitMQ_安装配置与管理

    RabbitMQ 安装配置与管理 安装 安装erlang虚拟机 Rabbitmq基于erlang语言开发,所有需要安装erlang虚拟机 #wget  http://www.erlang.org/do ...