Java流操作之转换流
流的操作规律:
1.明确流和目的。
数据源(源头):就是需要读取,可以使用两个体系:InputStream、Reader
数据汇(目的地):就是需要写入,可以使用两个体系:OutputStream.Writer
2.操作的数据是否是纯文本数据?
如果是(读取/写入的是字符):
数据源:Reader
数据汇:Writer
如果不是(读取/写入的是字节):
数据源:InputStream
数据汇:OutputStream
3.确定了一个体系,明确操作的数据设备
数据源对应的设备,如硬盘(File)、内存(数组)、键盘(System.in)、网络(Socket流)
数据汇对应的设备,如硬盘(File)、内存(数组)、键盘(System.out)、网络(Socket流)
4.需要在基本操作上附加其他功能?比如需要缓冲去提高数据的读写效率,则可以使用装饰类,比如(BufferedReader/BufferedWriter)
凡是操作设备上的文本数据,涉及编码转换,必须使用转换流
package IODemo;
import java.io.BufferedReader;
package IODemo; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; public class InputStreamReaderDemo { /**
* @param args
* @throws IOException
*/ public static void main(String[] args) throws IOException {
/*
* 完成文本文件的三个需求 (明确源和目的)
* 1.输入控制台的内容输出到文本文件中
* 2.将文本文件的内容输出到控制台
* 3.将一个文件的内容复制到另一个文件中
*/
//第三问
BufferedReader bufr = new BufferedReader(new InputStreamReader(
new FileInputStream("Demo.txt")));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("Demo3.txt")));
// 第二问
/*
* BufferedReader bufr = new BufferedReader(new InputStreamReader( new
* FileInputStream("Demo2.txt"))); BufferedWriter bufw = new
* BufferedWriter(new OutputStreamWriter( System.out));
*/
// 第一问
/*
* BufferedReader bufr = new BufferedReader(new InputStreamReader(
* System.in)); BufferedWriter bufw = new BufferedWriter(new
* OutputStreamWriter( new FileOutputStream("Demo2.txt")));
*/
// BufferedReader bufr=new BufferedReader(new
// InputStreamReader(new FileInputStream("Demo.txt"))); /*
* InputStream in = System.in; int ch1=in.read();
* System.out.println(ch1); int ch2=in.read(); System.out.println(ch2);
*/
/*
* InputStreamReader isr = new InputStreamReader(in); BufferedReader
* bufr = new BufferedReader(isr);// 装饰类在基本功能上进行扩展
*/
String line = null;
while ((line = bufr.readLine()) != null) {
if (line.equals("XXXX"))//你可以自定义读取文件时的结束标志 {
break;
}
bufw.write(line);
bufw.newLine();
bufw.flush();
}
} }
Java流操作之转换流的更多相关文章
- Java基础-IO流对象之转换流(InputStreamReader与OutoutStreamWriter)
Java基础-IO流对象之转换流(InputStreamReader与OutoutStreamWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.转换流概述 我们之前 ...
- java基础53 IO流技术(转换流)
1.转换流 1.输入字节的转换流:InputStreamReader是字节流转为字符流的桥梁,可以把输入字节流转换为输入字符流 2.输出字节流的转换流:OutputStreamWriter是字符 ...
- 黑马程序员——JAVA基础之IO流缓冲区,转换流,字节流
------- android培训.java培训.期待与您交流! ---------- 字符流的缓冲区 缓冲区的出现提高了对数据的读写效率. 对应类 • BufferedWriter ...
- Java 持久化操作之 --io流与序列化
1)File类操作文件的属性 1.File类的常用方法 1. 文件的绝对完整路径:getAbsolutePath() 文件名:getName() 文件相对路径:getPath() 文件的上一级目录:g ...
- 6.4(java学习笔记)转换流
一.乱码问题 我们来看下列例子: public class ConStream { //当前平台默认采用GBK public static void main(String[] args){ Stri ...
- Java——IO类,转换流简化写法
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- Java - io输入输出流 --转换流
转换流 转换输出流 OutputStreamWriter: 说明: /* * OutputStreamWriter 这个类的作用 * 就是指定输出流的编码格式 * 这个类的构造方法 需要传递 一个输 ...
- File类与常用IO流第九章——转换流
第九章.转换流 字节编码和字符集 编码:按照某种规则将字符以二进制存储到计算机中. 解码:将存储在计算机中的二进制数按照某种规则解析显示出来. 字符编码:Character Encoding ,就是一 ...
- Java I/O流操作(二)---缓冲流[转]
转自:http://blog.csdn.net/johnny901114/article/details/8710403 一.BufferWriter类 IO的缓冲区的存在就是为了提高效率,把要操作的 ...
随机推荐
- linux netstat命令使用详解
快速应用 netstat -lnp | more 显示监听的端口 简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),mas ...
- hbase 使用备忘
hbase是基于hadoop的,所以hbase服务器必须启动hadoop,这点很重要. 当然hbase其实只用到了dadoop的一个组件 1. 启动hadoop-dfs 在主上执行如下命令,可以把主和 ...
- vim查找/替换字符串 及一些高级用法
例: 32 ./run 0_39.pkt 0_39.jpg 33 ./run 0_3.pkt 0_3.jpg 34 ./run 0_40.pkt 0_40.jpg 35 ./run 0_41.pkt ...
- 一个简单的Android小实例
原文:一个简单的Android小实例 一.配置环境 1.下载intellij idea15 2.安装Android SDK,通过Android SDK管理器安装或卸载Android平台 3.安装J ...
- 新建一个struts2项目
1,新建-动态web项目: 2,将struts2的必要jar包复制到WEB-INF\lib文件夹下,一共有9个,如图一所示. 图一 3,配置web.xml文件,将以下内容写到web.xml文件中. & ...
- poj 2635 The Embarrassed Cryptographer(数论)
题目:http://poj.org/problem?id=2635 高精度求模 同余模定理. 题意: 给定一个大数K,K是两个大素数的乘积的值.再给定一个int内的数L 问这两个大素数中最小的一个是 ...
- 十个免费的Web压力测试工具
两天,jnj在本站发布了<如何在低速率网络中测试 Web 应用>,那是测试网络不好的情况.而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的W ...
- 让ie6支持fixed最简单和实用的方法
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- [swustoj 1092] 二分查找的最大次数
二分查找的最大次数(1092) 问题描述 这里是一个在排序好的数组A(从小到大)中查找整数X的函数,返回值是查找次数. int binarySearch(inta[],int n,int x)//数组 ...
- 【 D3.js 高级系列 — 5.0 】 颜色
颜色是作图不可少的概念,常用的标准有 RGB 和 HSL,D3 提供了创建颜色对象的方法,能够相互转换和插值. RGB色彩模式是通过对红(Red).绿(Green).蓝(Blue)三个颜色通道相互叠加 ...