黑马程序员 ----- Java基础 之 IO 基本规律总结 Day05
2014-04-22 08:22
369 查看
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
黑马程序员 ----- Java基础 之 IO 基本规律总结
/*
* 1 :
* 需求:
* 想把 键盘录入的数据 存储到 一个文件中去!
*
* 分析:
* 源: 键盘
* 目的:文件
* 规律:
* 通过三个 明确来完成:
* 一:明确源和目的!
* 源: 输入流 InputStream Reader
* 目的: 输出流 OutputStream Writer
*
* 二:操作的数据是否是 纯文本!
* 是:用字符流!
* 不是:字节流!
* 三: 当体系明确后 在明确 使用 那个具体的对象!
* 通过设备 进行 区分!
* 设备:
* |--源设备:内存,硬盘,键盘
* |--目的设备:内存,硬盘,控制台
*
*
* 例如:
* 需求1: 将一个文本文件数据存储到另一个文件中去!
*
* 源:因为是源 所以使用读取流:InputStream | Reader
* 是不是操作文本文件:
* 是:选择 Reader
* 这样 体系就明确了!
*
* 接下来 明确 该体系使用的对象:
* 明确设备: 硬盘,上的一个文件!
* Reader 体系中 可以操作文件的对象: FileReader
*
* FileReader fr = new fileReader();
* 是否提高效率?
* BufferedReaer bufr = new BufferedReader(fr);
*
*
* 目的:OutputStream | Writer
* 目的 是否是 纯文本?
* 是: Writer
* 设备: 硬盘 文件
* Writer 体系中 可以操作文件的对象: FileWriter
*
* FileWriter fw = new FileWriter();
* 是否 提高效率?
* BufferedWriter bufw = new BufferedWriter(fw);
*
* ------------------------------------------
*
* 2 需求 (其实 就是一个键盘记录的工具!)
* 将键盘录入的数据保存到 文件中!
*
* 源:InputStream Reader
* 是不是纯文本? 是 Reader
*
* 设备: 键盘 对应的对象 是 System.in
* 不是选择了Reader ? System.in 对应的不是字节流吗?
* 为了操作键盘的文本数据方便。为了 字符流 按照 字符串 操作最方便的!
* 所以,既然明确了Reader,那么就将 System.in转换成字符流!
* 用到了Reader 体系中的转换流!InputStreamReader
*
* InputStreamReader inr = new InputStreamReader(System.in);
*
* 缓冲区技术:
* BufferedReader bufr = new BufferedReader(inr);
*
*
* --------------------------------
*
* 1 目的: OuputStream Writer
*
* 2 是否是纯文本?
* 是: writer
*
* 3 设备: 硬盘 文件!
* 使用 FileWriter
* FileWriter fw = new FileWriter("c.txt");
*
* 为了 提高效率,使用 缓冲区!
* BufferWriter bufw = new BufferedWriter(fw);
*
*
* -----------------------------------
*
* 扩展: 想要把 录入的数据 按照指定的编码表(UTF-8),将数据存到文件中!
*
* 1 目的: OuputStream | Writer
*
* 2 是否是纯文本?
* 是: writer
*
* 3 设备: 硬盘 文件!
* 使用 FileWriter( 使用默认的编码表 GBK!)
*
* 但是存储时,需要加入指定的编码表! 而指定的编码表 只有转换流 可以指定!
* 所以,要使用的对象是OutputStreamWriter.
* 而 该转换流 对象 要接受一个 字节输出流! 而且 还可以 操作文件的 输出流! FileOutputStream
*
* FileOutputStream fos = new FileOutputStream("c.txt");
*
* OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
*
* 缓冲 机制:
* BufferedWriter bufw = new BufferedWriter(osw);
*
* ********
* 注意: 转换流 什么时候使用?
* 字符和字节之间的桥梁,通常涉及到字符编码转换时,
* 需要用到转换流!
*
*
*
*
* */
下面是代码:
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
黑马程序员 ----- Java基础 之 IO 基本规律总结
/*
* 1 :
* 需求:
* 想把 键盘录入的数据 存储到 一个文件中去!
*
* 分析:
* 源: 键盘
* 目的:文件
* 规律:
* 通过三个 明确来完成:
* 一:明确源和目的!
* 源: 输入流 InputStream Reader
* 目的: 输出流 OutputStream Writer
*
* 二:操作的数据是否是 纯文本!
* 是:用字符流!
* 不是:字节流!
* 三: 当体系明确后 在明确 使用 那个具体的对象!
* 通过设备 进行 区分!
* 设备:
* |--源设备:内存,硬盘,键盘
* |--目的设备:内存,硬盘,控制台
*
*
* 例如:
* 需求1: 将一个文本文件数据存储到另一个文件中去!
*
* 源:因为是源 所以使用读取流:InputStream | Reader
* 是不是操作文本文件:
* 是:选择 Reader
* 这样 体系就明确了!
*
* 接下来 明确 该体系使用的对象:
* 明确设备: 硬盘,上的一个文件!
* Reader 体系中 可以操作文件的对象: FileReader
*
* FileReader fr = new fileReader();
* 是否提高效率?
* BufferedReaer bufr = new BufferedReader(fr);
*
*
* 目的:OutputStream | Writer
* 目的 是否是 纯文本?
* 是: Writer
* 设备: 硬盘 文件
* Writer 体系中 可以操作文件的对象: FileWriter
*
* FileWriter fw = new FileWriter();
* 是否 提高效率?
* BufferedWriter bufw = new BufferedWriter(fw);
*
* ------------------------------------------
*
* 2 需求 (其实 就是一个键盘记录的工具!)
* 将键盘录入的数据保存到 文件中!
*
* 源:InputStream Reader
* 是不是纯文本? 是 Reader
*
* 设备: 键盘 对应的对象 是 System.in
* 不是选择了Reader ? System.in 对应的不是字节流吗?
* 为了操作键盘的文本数据方便。为了 字符流 按照 字符串 操作最方便的!
* 所以,既然明确了Reader,那么就将 System.in转换成字符流!
* 用到了Reader 体系中的转换流!InputStreamReader
*
* InputStreamReader inr = new InputStreamReader(System.in);
*
* 缓冲区技术:
* BufferedReader bufr = new BufferedReader(inr);
*
*
* --------------------------------
*
* 1 目的: OuputStream Writer
*
* 2 是否是纯文本?
* 是: writer
*
* 3 设备: 硬盘 文件!
* 使用 FileWriter
* FileWriter fw = new FileWriter("c.txt");
*
* 为了 提高效率,使用 缓冲区!
* BufferWriter bufw = new BufferedWriter(fw);
*
*
* -----------------------------------
*
* 扩展: 想要把 录入的数据 按照指定的编码表(UTF-8),将数据存到文件中!
*
* 1 目的: OuputStream | Writer
*
* 2 是否是纯文本?
* 是: writer
*
* 3 设备: 硬盘 文件!
* 使用 FileWriter( 使用默认的编码表 GBK!)
*
* 但是存储时,需要加入指定的编码表! 而指定的编码表 只有转换流 可以指定!
* 所以,要使用的对象是OutputStreamWriter.
* 而 该转换流 对象 要接受一个 字节输出流! 而且 还可以 操作文件的 输出流! FileOutputStream
*
* FileOutputStream fos = new FileOutputStream("c.txt");
*
* OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
*
* 缓冲 机制:
* BufferedWriter bufw = new BufferedWriter(osw);
*
* ********
* 注意: 转换流 什么时候使用?
* 字符和字节之间的桥梁,通常涉及到字符编码转换时,
* 需要用到转换流!
*
*
*
*
* */
下面是代码:
import java.io.*; public class TransStreamDemo2 { /** * @param args */ public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub // 键盘录入的最常见写法! // 1 源 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); // 2 目的 BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("lvoeme2.txt"),"UTF-8")); // 3 操作 String line = null; while((line= bufr.readLine())!= null) { if("over".equals(line)) break; bufw.write(line); bufw.newLine(); bufw.flush(); } bufr.close(); bufw.close(); } }
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com
相关文章推荐
- 黑马程序员-Java基础总结03——Java基本语法(二)
- 黑马程序员--Java基础加强--02.代码简化 书写规律I_原始数据类型【重载】【多态】【泛型】【泛型限定】【个人总结】
- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
- 黑马程序员——java的IO之流操作的基本规律,Properties类,打印流,序列流
- 黑马程序员:Java基础总结----GUI&网络&IO综合开发
- Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律 (黑马程序员)
- 黑马程序员--Java基础学习之IO流之字节流、字符流、读取写入文件、Copy文件、键盘输入输出、流操作的基本规律
- 黑马程序员--Java基础加强--03.代码简化 书写规律II_参数化数据类型【重载】【多态】【泛型】【泛型限定】【个人总结】
- 黑马程序员——Java基础----IO(字节流、操作规律等)(2)
- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
- 黑马程序员 14 Java基础教学 - 14 - IO体系总结01
- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
- 黑马程序员——Java基础---线程的另一个总结(1)--基本创建方法
- 黑马程序员-java 基础之IO基本类
- 黑马程序员:Java基础总结----集合与IO的结合[Properties类]
- 黑马程序员:Java基础总结----IO(Input Output)流概述
- 黑马程序员 java基础之IO总结
- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
- 黑马程序员--Java基础加强--04.代码简化 书写规律III_数组参数【重载】【数组】【可变参数数组】【泛型可变参数数组】【个人总结】
- 黑马程序员——Java基础---IO(二)---IO字节流、流操作规律