java IO流的简单介绍及应用

原创 2015年11月18日 20:48:44

    java中流的本质是数据传输,流的主要作用是为了改善程序性能并且使用方便,根据处理数据类型的不同分为:字节流和字符流。

    字节流(8bit)包含两个抽象类:InputStream(输入流)和OutputStream(输出流)。字符流(16bit)一次可读取多个字节包含:Reader(输入流)和Writer(输出流)。字节流和字符流最主要的区别是:自接力在处理输入输出时不会用到缓存,而字符流会用到缓存。

   下面是IO流的应用实例,需求是设计一个输入流的类,该类的作用为在读该文件时把文件中的大写字母转换为小写字母,把小写字母转换为大写字母。通过抽象装饰类FilterInputStream来实现一个装饰类,通过调用InputStream 类或
 其子类提供方法加上一定的逻辑判断代码可以简单地实现这个功能。例如test.txt中的aaaBBBcccDDD123,就会输出为:AAAbbbCCCddd123.

  实现类:

package lianxi_book;

import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;

/*
 *	 需求:设计一个输入流的类,该类的作用为在读该文件时把文件中的大写字母转换为小写字母,把小写字母转换为大写字母。
 * 
 * 	分析:
 * 		通过抽象装饰类FilterInputStream来实现一个装饰类,通过调用InputStream 类或
 * 		其子类提供方法加上一定的逻辑判断可以简单的实现这个功能。
 * 
 */
public class MyOwnInputStream extends FilterInputStream{
	public MyOwnInputStream(InputStream in){
		super(in);
	}
	
	public int read() throws IOException{
		int c= 0;
		if((c=super.read())!=-1){
			//把小写转换成大写
			if(Character.isLowerCase((char) c)){
				return Character.toUpperCase((char) c);
				
			}//把大写转换成小写
			else if(Character.isUpperCase((char) c)){
				return Character.toLowerCase((char) c);
			}//如果不是字母保持不变
			else{
				return c;
			}	
		}else{
			return -1;
		}
	}
}

  测试类:

package lianxi_book;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class Test {
	public static void main(String[] args) {
		int c;
		try {
			InputStream is = new MyOwnInputStream(new BufferedInputStream(new FileInputStream("test.txt")));
			while((c=is.read())>0){
				System.out.print((char) c);
			}
			is.close();
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			//e.printStackTrace();
			System.out.println(e.getMessage());
		}
		
	}
}


 
版权声明:本文为博主原创文章,未经博主允许不得转载。

JAVA中IO流的应用

1、IO流的分类 输入流 输出流 说明 字节流 InputStream OutputStream 字节流是处理字节的(二进制) 字符流 Reader Wri...
  • Code_KK
  • Code_KK
  • 2016年09月19日 14:55
  • 496

java IO库应用场景

javaIO库主要分为字节流和字符流RandomAccessFile是直接从Object继承 从文件读 FileReaderFileWriterFilterInputStreamFilte...
  • Scythe666
  • Scythe666
  • 2016年07月21日 10:26
  • 1223

java IO流之一 IO流介绍

1.IO流是干什么的?      IO流指 的是输入输出流,用来处理设备上的数据。这里的设备指硬盘,内存,键盘录入,网络传输等。 2.IO流的分类?      按处理数据类型来分:字节流和字符流...
  • a107494639
  • a107494639
  • 2012年05月21日 10:31
  • 3357

java中IO流简述

javaIO流介绍 一,javaIO流的作用 用于处理设备上的数据,如读取数据和写入数据 二,流的分类方式 1.1、按流向分类: 输入流: 读取数据的流,只能进行读操作。 输出流: 写入数...
  • just_you_java
  • just_you_java
  • 2014年07月18日 15:41
  • 785

Java中常见的IO流及其使用

Java中常见的IO流的介绍及使用: ByteArrayInputStream & ByteArrayOutputStream FileInputStream & FileOutputStream P...
  • sunqunsunqun
  • sunqunsunqun
  • 2015年07月09日 19:54
  • 4119

Java 常用IO流操作详解

IO流大家肯定不陌生,简单整理了一下常用IO流基本用法,其他的IO流以后有时间在整理。 1.基本概念IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,...
  • MAGIC_JSS
  • MAGIC_JSS
  • 2016年05月22日 17:19
  • 11168

java IO流学习总结

Java中的流,可以从不同的角度进行分类。     按流的方向分:输入流和输出流。     按处理数据单位分:字节流和字符流。     按实现功能分:节点流和处理流。       输出流:     ...
  • du_minchao
  • du_minchao
  • 2015年10月11日 12:35
  • 16144

java io流最详解

初学Java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见...
  • sinat_22797429
  • sinat_22797429
  • 2016年11月13日 20:31
  • 1037

java网络编程以及IO流的应用

OSI参考模型 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 应用层、传输层、网际层、主机至网络层 !--在Java中网络程序有两种协议:TCP和UDP,TCP通过握手协议进行可...
  • u013484709
  • u013484709
  • 2015年11月13日 12:29
  • 281

IO流类之间关系图

字节流: 字符流:
  • u013991521
  • u013991521
  • 2014年06月21日 00:26
  • 1299
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java IO流的简单介绍及应用
举报原因:
原因补充:

(最多只允许输入30个字)