`
GLC
  • 浏览: 112481 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

IO流简单总结

 
阅读更多

IO流体系结构(不足之处、还望请教 )
a、要想了解IO流体系就必须知道Stream流的概念:
   java中将输入输出抽象类叫做流的概念、并提供了相应的实现类;流式文件与外界进行数据交换的通道、其中输出流是我们在程序中从某个地方读取数据时使用、输出流是我们将数据送到某个地方时使用。


b、流的分类:
   按方向分:输入流(InputStream)、输出流(OutputStream)
   按性质分:基础字节流(原始流)即每次读一个字节、而且是直接连接到输入源的流。InputStream、OutputStream。
             过滤流(节点流)用来包装基础流以提供更好的特性、并不直接连接到数据源;常用的有:BufferedInputStream,BufferedOutputStream;
             基于具体数据类型的流:从流中读取指定类型的数据、则使用DataInput、DataOutput接口的子类如:DataInputStream、DataOutputStream。
             基于对象读写:一种强大功能流、即对象的输入输出流;ObjectInput/ObjectOutput接口的子类如:ObjectInputStream等。


c、流中定义的方法:
      close()
          关闭此输入流并释放与该流关联的所有系统资源。
      read()
          从输入流中读取数据的下一个字节。
      flush()
          刷新此输出流并强制写出所有缓冲的输出字节。
      write(int b)
          将指定的字节写入此输出流。


d、下面我们来详细介绍常用的流:
    1、用File流拷贝文件:

//File流拷贝文件
	public long copyFile(String srcName,String bakName){
		long start=System.currentTimeMillis();
		try {
			java.io.InputStream ins=new java.io.FileInputStream(srcName);
			// 实例化一个输出流的对象
			OutputStream os = new FileOutputStream(bakName);
			//获取文件长度
			try {
				int length=ins.available();
				// 根据文件字节的长度,来定义一个byte数组
				byte array[] = new byte[length];
				for(int i=0;i<length;i++){
					byte b=(byte)ins.read();
					//将这个字节写入入流中
					os.write(b);
					array[i]=b;
				}
				// 将byte转换为字符串
				String str = new String(array);
				// 输出
				System.out.println("文件内容是:\n" + str);
				os.close();
				ins.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		long end=System.currentTimeMillis();
		long result=end-start;
		return result;
	}


使用缓冲流复制文件

//缓冲流拷贝文件
	public long copyFile3(String srcName,String bakName) throws IOException{
		long start=System.currentTimeMillis();
		        //创建从源文件来的输入流
				InputStream ins=new java.io.FileInputStream(srcName);
				//构造输入缓冲流
				BufferedInputStream  bis=new BufferedInputStream(ins);
				//构造输出流
				OutputStream out=new FileOutputStream(bakName);
				//构造缓冲输出流对象
				BufferedOutputStream bos=new BufferedOutputStream(out);
				int i = 0;
				// 循环读取文件内容,只要读取的值不是-1就表示还未到文件的末尾
				while ((i = bis.read()) != -1) {
					// 将i写入到文件中
					bos.write(i);
				}
				bos.flush();//强制将缓冲中的内容写入到文件中
				bos.close();
				out.close();
				bis.close();
				ins.close();
				long end=System.currentTimeMillis();
				long time=end-start;
				return time;
	}


而Data流的使用也和缓冲流的使用一样、建立在InputStream和OutputStream流对象的基础上。


通过使用使用不同的流对象、我们可以发现使用缓冲流和没使用缓冲流的速度相差非常大、、、
分享到:
评论

相关推荐

    Java IO流总结

    总的来说,Java IO流是一个强大的工具集,它涵盖了各种数据源和目标的输入输出操作,从简单的文件读写到复杂的网络通信和对象序列化。理解并熟练运用Java IO流是成为一名合格的Java开发者的必备技能之一。通过深入...

    Java-Io流,练习

    总结来说,Java的IO流是一个庞大且重要的主题,涵盖了数据的输入、输出、缓冲、转换等多个方面。对于初学者而言,理解和掌握IO流的基本概念、分类以及常用类的用法是至关重要的。通过实践练习,可以加深对IO流的理解...

    map集合以及IO流

    在Java编程语言中,`Map`集合是一种存储键值对...总结来说,`Map`集合提供了键值对的存储,`Set`特性可用于排序和去重,而`IO流`则负责数据的输入输出。理解这些核心概念并熟练运用,对于进行高效的Java编程至关重要。

    java IO流+socket源码 实现简单文本传输

    在这个示例中,我们将深入探讨如何利用Java IO流与Socket实现简单的文本传输。对于初学者来说,理解这两个概念及其交互是非常关键的。 首先,让我们来了解Java IO流。IO流在Java中用于读取和写入数据,它可以是文件...

    java基础之IO流

    ### Java IO流基础知识点 #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、...

    IO流三种流方式的文本文件的复制

    总结起来,Java的IO流提供了丰富的功能来处理文件操作。在复制文本文件时,可以根据实际需求选择合适的流类型,如简单文本处理可选用FileReader和FileWriter,追求效率时可采用BufferedReader和BufferedWriter。理解...

    Java之IO流学习总结.pdf

    本文将对Java之IO流进行深入的解析和总结。 首先,理解流的概念至关重要。流是数据的流动,它抽象了从数据源读取数据或向接收端写入数据的过程。Java中的IO流机制允许开发者方便地控制数据在不同介质间的流动,例如...

    2022年java io流学习总结.docx

    2022年的Java IO流学习总结主要涵盖以下核心知识点: 1. **流的概念**:流是数据传输的抽象概念,表示数据的流动方向,可以是从文件到内存,也可以是从键盘到屏幕。Java中的IO流分为两种基本类型,字节流(Byte ...

    java Io流总结(毕向东)

    ### Java IO流总结 #### 一、Java IO流概述及概念 **毕向东**老师是一位经验丰富的Java讲师,以其通俗易懂的教学风格受到广大学员的喜爱。在其分享的《Java Io流总结》文档中,详细介绍了Java IO流的基础概念、...

    IO流练习题1

    根据提供的信息,我们可以总结出以下关于“IO流练习题1”的相关知识点: ### IO流基础知识 #### 1. IO流概念 在计算机科学中,**输入/输出流(Input/Output Stream,简称IO流)**是指数据从一个地方到另一个地方的...

    Java之IO流学习总结借鉴.pdf

    Java的IO流是程序与外部交互数据的重要工具,它允许开发者实现数据的读取、写入、复制和转换。在Java中,流被分为两类:字节流(Byte Stream)和字符流(Character Stream),它们都是Java IO体系的一部分。 字节流...

    java的IO流实现文件复制20190726.zip

    总结一下,Java的IO流提供了丰富的工具来处理文件复制。字节流是最基础的流类型,适用于任何类型的数据。通过组合不同的输入流和输出流,我们可以构建出适应不同需求的文件操作解决方案。理解并熟练掌握IO流的使用,...

    io流复制文本文件图解

    在深入探讨“io流复制文本文件图解”的知识点前,我们先来理解一下IO流的基本概念。IO(Input/Output)流是Java编程语言中处理输入输出操作的基础框架,广泛应用于文件读写、网络通信等场景。Java中的IO流分为字节流...

    java IO流实例,包括文件的读写、上传和下载

    总结来说,Java IO流是处理输入输出的核心工具,无论是在本地文件系统还是在网络环境中,都能提供高效、灵活的文件操作手段。通过组合不同的流类,可以实现复杂的文件读写、上传和下载任务,同时适应文本和非文本...

    JAVA 的IO流的文件复制

    总结,Java的IO流提供了强大而灵活的文件操作功能,通过`FileInputStream`和`FileOutputStream`可以实现文件的复制,而通过递归调用可以实现整个文件夹的复制。在实际开发中,我们需要根据具体需求进行相应的异常...

    JAVA IO流详解

    Java IO流是Java编程中非常基础且重要的部分,无论是进行简单的文件操作还是复杂的网络通信,都离不开对IO流的理解和应用。掌握Java IO流不仅可以提高代码的可维护性和扩展性,还能有效提升程序员解决问题的能力。...

    java IO 流详细分析

    下面通过一个简单的例子来展示如何使用Java IO流进行文件读写操作: 1. **FileWriter**:用于写入文件。 - 创建一个`FileWriter`对象时,可以选择是否追加内容到文件末尾。 ```java FileWriter fw = new ...

    java_io流的处理

    ### Java IO流处理详解 #### I/O流概述 在Java编程中,输入/输出(I/O)处理是一项核心技能,涉及从键盘读取数据、向屏幕输出数据、从文件读写数据以及在网络连接上进行读写操作。Java将这些不同的输入输出源抽象...

    java_IO完全总结

    2. 简单的Java IO流使用例子:文章中可能会给出简单的例子,展示如何使用Java IO的字节流和字符流进行数据的读写。 3. 源代码分析:文章中可能会深入分析几个实现类的源代码,来说明Java IO的内部工作机制。 4. ...

    java IO章节的总结

    #### 选择IO流的准则 1. **原始数据格式**:考虑数据的原始格式,例如是文本还是二进制数据。 2. **输入或输出**:确定是读取数据还是写入数据。 3. **是否需要转换流**:如果需要在字节流和字符流之间转换,则需要...

Global site tag (gtag.js) - Google Analytics