输入输入流应用的简单思想,字节流字符流之间的转换,转换时指定编码表的操作
2014-08-10 14:18
393 查看
package day06;
import java.io.*;
/*
* 1、
* 源:键盘录入
* 目的:控制台
*
* 2、需求:把键盘录入的数据存储到指定的文件中
* 源:键盘
* 目的:文件
*
* 3、需求:把文件中的数据打印到控制台
* 源:文件
* 目的:控制台
*
* 流操作的基本规律:
* 1、明确源和目的
* 源:输入流 InputStream Reader
* 目的:输出流
OutputStream Writer
* 2、明确操作的数据是否是纯文本
* 是:字符流
* 不是:字节流
* 3、当体系明确后,再明确要使用哪个具体的对象
* 通过设备来进行区分:
* 源设备:内存、硬盘、键盘
* 目的设备:内存、硬盘、控制台
*
* 需求分析demo:
* 1、将一个文件中的数据存储到另一个文件中(复制文件)
* 源:因为是源所以使用读取流 InputStream
writer
* 是不是操作文本文件
* 是:选择Reader
* 这样体系就明确了
*
* 接下来明确要使用该体系中的哪个对象
* 明确设备:硬盘 上的一个文件
* Reader体系中可以操作文件的对象 FileReader
*
* 是否需要提高效率:
* 是:加入Reader体系中的缓冲区 BufferedReader
*
* FileReader fr=new FileReader("c:\\demo.txt");
* BufferedReader buff=new BufferedReader(fr);
*
* 目的:OutputStream Writer
* 是否是纯文本:
* 是:writer
* 设备:硬盘 一个文件
* Writer 体系中可以操作文件的对象FileWriter
*
* 是否需要提高效率:
* 是:加入Reader体系中的缓冲区 BufferedWriter
*
* FileWriter fw=new FileWriter("c:\\demo_copy.txt");
* BufferedWriter buff=new BufferedWriter(fw);
*
* 2、需求:将键盘录入的数据保存到一个文件中
* 源:InputStream Reader
* 是不是纯文本? 是:Reader
* 设备:键盘 对应的对象是System.in
* 选择的是Reader System.in的对象是字节流
* 为了操作键盘文本数据方便,将字节流转成字符流按照字符串操作是最方便的
* 所以既然明确了Reader 那么就将System.in转换成Reader
* 使用Reader体系中转换流 InputStreamReader
*
* InputStreamReader isr=new InputStreamReader(System.in);
*
* 需要提高效率吗? 需要:使用BufferedReader
* BufferedReader bff=new BufferedReader(isr);
*
* 目的:Outputstream Writer
* 是否是纯文本? 是:Writer
* 设备:硬盘 一个文件 使用: FileWriter
* FileWriter fw=new FileWriter("c:\\demo.txt");
* 需要提高效率吗? 需要
* BufferedWriter buff=new BufferedWriter(fw);
* ------------------------------------------------------------------
* 3、要把录入的数据按照指定编码表(utf-8),将数据存储到文件中
*
* 目的:OutputStream Writer
* 是否是纯文本? 是:Writer
* 设备:硬盘,一个文件,使用FileWriter
* 但是FileWriter使用的是默认编码表即GBK
*
* 存储时,希望加入指定的编码表UTF-8,而指定的编码表只有转换流可以指定
* 所以要使用的对象是OutputStreamWriter
* 而该转换流对象要接收一个可以操作文件的字节输出流即:FileOutputStream
* OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("c:\\a.txt"),"UTF-8");
* 需要提高效率? 需要 BufferedWriter buff=new BufferedWiter(osw);
* */
import day02.Sop;
class TransStreamDemo {
public static void main(String[] args) throws IOException{
/*
InputStream in=System.in;
InputStreamReader isr=new InputStreamReader(in);
BufferedReader buff=new BufferedReader(isr);
OutputStream out=System.out;
OutputStreamWriter osw=new OutputStreamWriter(out);
BufferedWriter buffer=new BufferedWriter(osw);
*/
//以上注释代码的简写格式
//源:键盘录入
目的:控制台
//BufferedReader buff=new BufferedReader(new InputStreamReader((System.in)));
//BufferedWriter buffer=new BufferedWriter(new OutputStreamWriter(System.out));
//源:键盘录入
目的:文件
//BufferedReader buff=new BufferedReader(new InputStreamReader((System.in)));
//BufferedWriter buffer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("c:\\out.txt")));
//源:文件 目的:控制台
//BufferedReader buff=new BufferedReader(new InputStreamReader(new FileInputStream("c:\\out.txt")));
//BufferedWriter buffer=new BufferedWriter(new OutputStreamWriter(System.out));
//源:键盘录入
目的:文件(指定编码表)
//BufferedReader buff=new BufferedReader(new InputStreamReader(System.in));
//BufferedWriter buffer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("c:\\acb.txt"),"UTF-8"));
//源:文件 目的:控制台(指定编码表)
BufferedReader buff=new BufferedReader(new InputStreamReader(new FileInputStream("c:\\acb.txt"),"UTF-8"));
BufferedWriter buffer=new BufferedWriter(new OutputStreamWriter(System.out));
String len=null;
while((len=buff.readLine())!=null){
if("over".equals(len)){
break;
}
buffer.write(len.toUpperCase());
buffer.newLine();
buffer.flush();
}
buff.close();
}
}
import java.io.*;
/*
* 1、
* 源:键盘录入
* 目的:控制台
*
* 2、需求:把键盘录入的数据存储到指定的文件中
* 源:键盘
* 目的:文件
*
* 3、需求:把文件中的数据打印到控制台
* 源:文件
* 目的:控制台
*
* 流操作的基本规律:
* 1、明确源和目的
* 源:输入流 InputStream Reader
* 目的:输出流
OutputStream Writer
* 2、明确操作的数据是否是纯文本
* 是:字符流
* 不是:字节流
* 3、当体系明确后,再明确要使用哪个具体的对象
* 通过设备来进行区分:
* 源设备:内存、硬盘、键盘
* 目的设备:内存、硬盘、控制台
*
* 需求分析demo:
* 1、将一个文件中的数据存储到另一个文件中(复制文件)
* 源:因为是源所以使用读取流 InputStream
writer
* 是不是操作文本文件
* 是:选择Reader
* 这样体系就明确了
*
* 接下来明确要使用该体系中的哪个对象
* 明确设备:硬盘 上的一个文件
* Reader体系中可以操作文件的对象 FileReader
*
* 是否需要提高效率:
* 是:加入Reader体系中的缓冲区 BufferedReader
*
* FileReader fr=new FileReader("c:\\demo.txt");
* BufferedReader buff=new BufferedReader(fr);
*
* 目的:OutputStream Writer
* 是否是纯文本:
* 是:writer
* 设备:硬盘 一个文件
* Writer 体系中可以操作文件的对象FileWriter
*
* 是否需要提高效率:
* 是:加入Reader体系中的缓冲区 BufferedWriter
*
* FileWriter fw=new FileWriter("c:\\demo_copy.txt");
* BufferedWriter buff=new BufferedWriter(fw);
*
* 2、需求:将键盘录入的数据保存到一个文件中
* 源:InputStream Reader
* 是不是纯文本? 是:Reader
* 设备:键盘 对应的对象是System.in
* 选择的是Reader System.in的对象是字节流
* 为了操作键盘文本数据方便,将字节流转成字符流按照字符串操作是最方便的
* 所以既然明确了Reader 那么就将System.in转换成Reader
* 使用Reader体系中转换流 InputStreamReader
*
* InputStreamReader isr=new InputStreamReader(System.in);
*
* 需要提高效率吗? 需要:使用BufferedReader
* BufferedReader bff=new BufferedReader(isr);
*
* 目的:Outputstream Writer
* 是否是纯文本? 是:Writer
* 设备:硬盘 一个文件 使用: FileWriter
* FileWriter fw=new FileWriter("c:\\demo.txt");
* 需要提高效率吗? 需要
* BufferedWriter buff=new BufferedWriter(fw);
* ------------------------------------------------------------------
* 3、要把录入的数据按照指定编码表(utf-8),将数据存储到文件中
*
* 目的:OutputStream Writer
* 是否是纯文本? 是:Writer
* 设备:硬盘,一个文件,使用FileWriter
* 但是FileWriter使用的是默认编码表即GBK
*
* 存储时,希望加入指定的编码表UTF-8,而指定的编码表只有转换流可以指定
* 所以要使用的对象是OutputStreamWriter
* 而该转换流对象要接收一个可以操作文件的字节输出流即:FileOutputStream
* OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("c:\\a.txt"),"UTF-8");
* 需要提高效率? 需要 BufferedWriter buff=new BufferedWiter(osw);
* */
import day02.Sop;
class TransStreamDemo {
public static void main(String[] args) throws IOException{
/*
InputStream in=System.in;
InputStreamReader isr=new InputStreamReader(in);
BufferedReader buff=new BufferedReader(isr);
OutputStream out=System.out;
OutputStreamWriter osw=new OutputStreamWriter(out);
BufferedWriter buffer=new BufferedWriter(osw);
*/
//以上注释代码的简写格式
//源:键盘录入
目的:控制台
//BufferedReader buff=new BufferedReader(new InputStreamReader((System.in)));
//BufferedWriter buffer=new BufferedWriter(new OutputStreamWriter(System.out));
//源:键盘录入
目的:文件
//BufferedReader buff=new BufferedReader(new InputStreamReader((System.in)));
//BufferedWriter buffer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("c:\\out.txt")));
//源:文件 目的:控制台
//BufferedReader buff=new BufferedReader(new InputStreamReader(new FileInputStream("c:\\out.txt")));
//BufferedWriter buffer=new BufferedWriter(new OutputStreamWriter(System.out));
//源:键盘录入
目的:文件(指定编码表)
//BufferedReader buff=new BufferedReader(new InputStreamReader(System.in));
//BufferedWriter buffer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("c:\\acb.txt"),"UTF-8"));
//源:文件 目的:控制台(指定编码表)
BufferedReader buff=new BufferedReader(new InputStreamReader(new FileInputStream("c:\\acb.txt"),"UTF-8"));
BufferedWriter buffer=new BufferedWriter(new OutputStreamWriter(System.out));
String len=null;
while((len=buff.readLine())!=null){
if("over".equals(len)){
break;
}
buffer.write(len.toUpperCase());
buffer.newLine();
buffer.flush();
}
buff.close();
}
}
相关文章推荐
- C#中检测某个类(方法、程序集等各种部分)是否应用了指定的特性以及对特性的一些简单操作
- ArrayList的简单应用,数组之间的转换。
- C#操作技巧的数据类型之间的转换
- C#操作技巧的数据类型之间的转换
- List 与 DataTable之间的转换 (应用泛型)
- ISD1700系列的SPI操作,及其与MEGA16的简单应用
- 实现对图的一个指定的操作或用图解决一个应用问题
- 有行统计项和列统计项的行列转换,以及EXCEL导入SQL的简单应用
- 黄聪:C# web word文档操作,任意指定位置插入图片,表格简单操作
- [零基础学JAVA]Java SE应用部分-31.Java IO操作(05)IO操作实例讲解之实现简单MIS 推荐
- 云计算:拉进应用和操作之间的距离
- 错误:无法执行操作,因为未将指定的 Storyboard 应用到此交互控件的对象
- C#操作技巧之数据类型之间的转换
- 字符输入流向字节输入流的转换
- 将十进制数转换为指定进制的数 不使用字符操作和递归实现
- 输入一个图片,获得转换成为指定大小的图片
- 简单的stringstream实例--实现字符串与数字之间相互转换
- C# 哈希表结合动态数组的简单操作和应用
- 简单介绍PDF,XPS,Images,Office 2007之间的转换方法
- 简单sql查询接口(输入user:pwd@host即可进行sql语句操作)