打印流
  字节流打印流 PrintStream
  字符打印流 PrintWriter

打印流的特点:
  A:只有写数据的,没有读取数据。只能操作目的地,不能操作数据源。(只能写入数据到文件中,而不能从文件中提取数据)
  B:可以操作任意类型的数据。
  C:如果启动了自动刷新,能够自动刷新。
  D:该流是可以直接操作文本文件的。

哪些流对象是可以直接操作文本文件的呢?
     FileInputStream
     FileOutputStream
     FileReader
     FileWriter
     PrintStream
     PrintWriter
看API,查流对象的构造方法,如果同时有File类型和String类型的参数,一般来说就是可以直接操作文件的。

流如果按操作分:
     基本流:就是能够直接读写文件的
     高级流:在基本流基础上提供了一些其他的功能

作为Writer的子类使用:

     public static void main(String[] args) throws IOException {
// 作为Writer的子类使用
PrintWriter pw = new PrintWriter("pw.txt"); pw.write("hello");
pw.write("world");
pw.write("java"); pw.close();
}

打印流的特点:

  1:可以操作任意类型的数据。
     print()
     println()
   2:启动自动刷新
     PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true);
     还是应该调用println()的方法才可以
     这个时候不仅仅自动刷新了,还实现了数据的换行。

  这里的println()
       其实等价于于:
      bw.write();
      bw.newLine();
      bw.flush();

PrintWriter实现自动刷新和自动换行:

 public static void main(String[] args) throws IOException {
// 创建打印流对象
PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true); pw.println("hello");
pw.println(true);
pw.println(100); pw.close();
}

之前单纯用字符流来复制文本:

         // 封装数据源
BufferedReader br = new BufferedReader(new FileReader(
"DataStreamDemo.java"));
// 封装目的地
BufferedWriter bw = new BufferedWriter(new FileWriter("Copy.java")); String line = null;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
bw.flush();
} bw.close();
br.close();

使用打印流来改进之前的复制文本例子

     public static void main(String[] args) throws IOException {
//封装数据源,文本文件,用字符流
BufferedReader br = new BufferedReader(new FileReader("DataStreamDemo.java"));
//封装目的地
PrintWriter pw = new PrintWriter(new FileWriter("Copy.java"),true);
//读取数据,并写入数据
String line = null;
while((line = br.readLine()) != null){
pw.println(line); //这里一句相当于以前3句
}
//释放资源
br.close();
pw.close(); }

java 21 - 12 IO流的打印流的更多相关文章

  1. JAVA的IO流:打印流

    打印流: 打印流是输出信息最方便的类,注意包含字节打印流PrintStream和字符打印流:PrintWriter.打印流提供了非常方便的打印功能, 可以打印任何类型的数据信息,例如:小数,整数,字符 ...

  2. Java - IO 内存流和打印流

    IO 内存流和打印流操作 字符编码 计算机中所有的信息组成都是二进制数据,所有能够描述的中文文字都是经过处理后的结果:所有的语言文字都会使用编码来进行描述,例如:ASCII码 常见编码 GBK/GB2 ...

  3. 我爱Java系列之《JavaEE学习笔记day12》---【缓冲流、转换流、序列/反序列化流、打印流】

    [缓冲流.转换流.序列/反序列化流.打印流] 一.缓冲流 1.字节缓冲输出流 java.io.BufferedOutputStream extends OutputStream 高效字节输出流 写入文 ...

  4. java的序列化流和打印流

    对象操作流(序列化流) 每次读取和写出的都是JavaBean对象. 序列化:将对象写入到文件中的过程 反序列化:从文件中读取对象到程序的过程 transient: 标识瞬态,序列化的时候,该修饰符修饰 ...

  5. IO流之打印流

    打印流的概述(只有输出就是只与数据目的有关,不会抛出IO异常) 打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式. 打印流根据流的分类: l  字节打印流  PrintStream l ...

  6. JavaIO——内存操作流、打印流

    我们之前所做的都是对文件进行IO处理,实则我们也可以对内存进行IO处理.我们将发生在内存中的IO处理称为内存流. 内存操作流也可分为两类:字节内存流和字符内存流. (1)ByteArrayInputS ...

  7. Java之IO流进阶篇:内存流,打印流,对象流

    Java中的IO流,即为输入输出流.所谓输入输出流,都是相对于程序而言,程序就是这个参照物.一张图看懂输入输出流: 输入流抽象基类:InputStream,Reader 输出流抽象基类:OutputS ...

  8. Java基础IO类之打印流

    package IODemo; import java.io.*; /* 打印流 : 很方便的进行输出 字节打印流 增强输出功能 字符打印流 */ public class PrintStreamDe ...

  9. java ->IO流_打印流

    打印流的概述 打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式. 打印流根据流的分类: 永远不会抛出IO异常 l  字节打印流  PrintStream l  字符打印流  Print ...

随机推荐

  1. html-制作导航菜单

    导航菜单nav: 1.使用列表标签<ul> 2.使用浮动布局float 3.使用超链接标签<a>:要使用<a>标签的margin外边距,需要让<a>标签 ...

  2. elasticsearch索引的增删改查入门

    为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/<index>/&l ...

  3. jquery实现轮播

    HTML代码: <div class="ad"> <ul class="slider"> <li><img src=& ...

  4. JavaScript indexOf() 方法和 lastIndexOf() 方法

    一,定义和用法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索 ...

  5. iOS Block(一)

    Block使用总结: 1.格式: ReturnType (^ BlockName)(参数…); //例: int (^ BFunc) (int a, int b); 2.block赋值: block名 ...

  6. iOS 清理缓存功能的实现第二种方法

    /** * 清理缓存第二种方法 * * @param sender <#sender description#> */ - (void)clearCache:(id)sender { // ...

  7. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(六)Picker View视图 学习笔记

    想对PickerView进行操作,只能在代码中操作. 下面 ,再添加三个label组件,然后将所有组件配置到代码中(看代码),然后要实现对PickerView的操作,就要实现它的DataSource协 ...

  8. iOS支付宝集成时遇到的问题整理(2)

    1.集成支付宝SDK编译报错#include<openssl/asn1.h>这一行  “openssl/asn1.h”file not found 解决方法:在BuildSetting 里 ...

  9. PHP实例学习之————MVC架构模式分析与设计

      写博客,不容易,你们的评论和转载,就是我的动力, 但请注明出处,隔壁老王的开发园:http://www.cnblogs.com/titibili 2016年1月31日 18:53 作者:Ygirl ...

  10. 查看mysql主从配置的状态及修正 slave不启动问题

    1.查看master的状态 mysql> show master status;  //Position不应该为0 mysql> show processlist;  //state状态应 ...