毕向东_Java基础视频教程第19天_IO流(18~19)
第19天-18-IO流(流操作规律 - 1)
通过三个步骤来明确"流操作"的规律:
明确数据流的"源和目的"
源, 输入流: InputStream/Reader
目的, 输出流: OutputStream/Writer
明确操作的数据是否是纯文本
是, 字符流
不是, 字节流
通过设备来区分要使用哪个具体的类
源设备: 内存/硬盘/键盘
目的设备: 内存/硬盘/控制台
附录
是否需要进行缓冲:
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
是否需要进行 "字符 - 字节" 以及charset的转换:
例如OutputStreamWriter(OutputStream out, String charsetName)
第19天-19-IO流(流操作规律 - 2)
package bxd;
import java.io.*;
public class TransStreamDemo2 {
    public static void main(String[] args) throws IOException {
        method_5();
    }
    // 将一个文本文件中的数据存储到另外一个文件中
    public static void method_1() throws IOException {
        BufferedReader bufr = new BufferedReader(new FileReader("s.txt"));
        BufferedWriter bufw = new BufferedWriter(new FileWriter("d.txt"));
        String line;
        while ((line = bufr.readLine()) != null) {
            bufw.write(line);
            bufw.newLine();
            bufw.flush();
        }
        bufr.close();
        bufw.close();
    }
    // 将键盘录入的数据保存到一个文件中
    public static void method_2() throws IOException {
        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bufw = new BufferedWriter(new FileWriter("d.txt"));
        String line;
        while ((line = bufr.readLine()) != null) {
            if ("over".equals(line)) break;
            bufw.write(line);
            bufw.newLine();
            bufw.flush();
        }
        bufr.close();
        bufw.close();
    }
    // 将键盘录入的数据保存到一个文件中, 并可以自定义目标文件的字符编码.
    public static void method_3() throws IOException {
        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d.txt"), "utf-8"));
        String line;
        while ((line = bufr.readLine()) != null) {
            if ("exit".equals(line)) break;
            bufw.write(line);
            bufw.newLine();
            bufw.flush();
        }
        bufr.close();
        bufw.close();
    }
    // 练习1: 将一个图片文件中的数据存储到另外一个文件中
    public static void method_4() throws IOException {
        BufferedInputStream bufis = new BufferedInputStream(new FileInputStream("1.png"));
        BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream("2.png"));
        int by;
        while ((by = bufis.read()) != -1) {
            bufos.write(by);
        }
        bufis.close();
        bufos.close();
    }
    // 练习2: 将一个文本文件的数据输出到控制台
    public static void method_5() throws IOException {
        BufferedReader bufr = new BufferedReader(new FileReader("s.txt"));
        BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
        String line;
        while ((line = bufr.readLine()) != null) {
            bufw.write(line);
            bufw.newLine();
            bufw.flush();
        }
        bufr.close();
        bufw.close();
    }
}
毕向东_Java基础视频教程第19天_IO流(18~19)的更多相关文章
- 毕向东_Java基础视频教程第20天_IO流(7~10)
		
第20天-07-IO流(递归) package bxd; import java.io.File; public class FileDemo3 { // 非递归打印 public static vo ...
 - 毕向东_Java基础视频教程第21天_IO流(1)
		
第21天-01-IO流(对象的序列化) ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable接口(标记接口) 非必须, 但强烈建议所有 ...
 - 毕向东_Java基础视频教程第20天_IO流(15~17)
		
第20天-15-IO流(打印输出流) 打印输出流:PrintWriter与PrintStream 两者的区别:Since JDK 1.4 it's possible to specify the ch ...
 - 毕向东_Java基础视频教程第20天_IO流(11~14)
		
第20天-11-IO流(Properties简述) .properties是一种主要在Java相关技术中用来存储应用程序的可配置参数的文件的文件扩展名.它们也可以存储用于国际化和本地化的字符串,这种文 ...
 - 毕向东_Java基础视频教程第20天_IO流(5~6)
		
第20天-05-IO流(文件列表一) static File[] listRoots() List the available filesystem roots. String[] list() Re ...
 - 毕向东_Java基础视频教程第20天_IO流(1~4)
		
第20天-01-IO流(File概述) File类: 用来将文件或者文件夹封装成对象, 方便进行操作. File对象可以作为参数, 传递给流对象的构造函数. 流对象不能操作文件夹; 流对象不能操作文件 ...
 - 毕向东_Java基础视频教程第19天_IO流(01~05)
		
第19天-01-IO流(BufferedWriter) 字符流的缓冲区 缓冲区的出现提高了对数据的读写效率. 对应类缓冲区要结合流才可以使用. BufferedWriter BufferedReade ...
 - 毕向东_Java基础视频教程第19天_IO流(06~10)
		
第19天-06-IO流(装饰设计模式) 装饰设计模式: 当想要对已有的对象进行功能增强时, 可以定义类,将已有对象传入,基于已有的功能,并提供加强功能.那么这个自定义的类称为装饰类. 装饰类通常会通过 ...
 - 毕向东_Java基础视频教程第19天_IO流(11~14)
		
第19天-11-IO流(字节流File读写操作) import java.io.FileInputStream; import java.io.FileOutputStream; import jav ...
 - 毕向东_Java基础视频教程第19天_IO流(20~22)
		
第19天-20-IO流(改变标准输入输出设备) static void setIn(InputStream in) Reassigns the "standard" input s ...
 
随机推荐
- Mac 10.12安装XMind
			
下载: (链接: https://pan.baidu.com/s/1i4FmspJ 密码: ydc2)
 - mono for android生成APK出现错误fatal error in gc 解决方案
			
laxknight 标签: mono for android,fatal error in gc mono for android生成APK出现这个错误fatal error in gc collec ...
 - JVM-垃圾收集过程的内存管理
			
JDK1.7 JVM的垃圾收集算法有 1. 标记-清除算法: 2. 复制算法:在商业虚拟机都是使用这种算法来回收新生代的 3. 标记-整理算法: 4.分代收集算法: JDK1.7 JVM的垃圾收集器有 ...
 - Error处理:/bin/bash^M: 坏的解释器: 没有该文件或目录(bad interpreter: No such file or directory)
			
在Linux下编译运行脚本的时候出现”/bin/bash^M: 坏的解释器: 没有那个文件或目录(bad interpreter: No such file or directory)“这样的错误. ...
 - C#中复制数组
			
string array = new string[]{"abc", "bcd", "efg"}; string bArray = new ...
 - Spring中线程池的应用
			
多线程并发处理起来通常比较麻烦,如果你使用spring容器来管理业务bean,事情就好办了多了.spring封装了Java的多线程的实现,你只需要关注于并发事物的流程以及一些并发负载量等特性,具体来说 ...
 - System.Web.Caching.Cache类 缓存 各种缓存依赖(转)
			
转自:http://www.cnblogs.com/kissdodog/archive/2013/05/07/3064895.html Cache类,是一个用于缓存常用信息的类.HttpRuntime ...
 - Android中数据的保存
			
1. 概述 在Android中有以下几种保存数据方式: 1). 使用sharedPreference去保存:只有应用程序自己可以访问 2). 保存在应用程序私有的文件夹下:只有应用程序自己可以访问 3 ...
 - Hbase配置指南
			
注意点 Hbase 需要zookeeper. Hbase 需要在各个节点的机器上配置. 集群中的启动顺序是Hadoop.zookeeper 和Hbase 搭建步骤 解压安装文件并配置环境变量. exp ...
 - MongoDB客户端及监控工具
			
现在许多应用都使用MongoDB存储大量的业务数据,MongoDB基于文档式的存储,在大数据行业的应用还是很普遍的.MongoDB的客户端工具也很多,基于web的却不多,国产的就更少了,下面这款国产的 ...