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开发者的必备技能之一。通过深入...
总结来说,Java的IO流是一个庞大且重要的主题,涵盖了数据的输入、输出、缓冲、转换等多个方面。对于初学者而言,理解和掌握IO流的基本概念、分类以及常用类的用法是至关重要的。通过实践练习,可以加深对IO流的理解...
在Java编程语言中,`Map`集合是一种存储键值对...总结来说,`Map`集合提供了键值对的存储,`Set`特性可用于排序和去重,而`IO流`则负责数据的输入输出。理解这些核心概念并熟练运用,对于进行高效的Java编程至关重要。
在这个示例中,我们将深入探讨如何利用Java IO流与Socket实现简单的文本传输。对于初学者来说,理解这两个概念及其交互是非常关键的。 首先,让我们来了解Java IO流。IO流在Java中用于读取和写入数据,它可以是文件...
### Java IO流基础知识点 #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、...
总结起来,Java的IO流提供了丰富的功能来处理文件操作。在复制文本文件时,可以根据实际需求选择合适的流类型,如简单文本处理可选用FileReader和FileWriter,追求效率时可采用BufferedReader和BufferedWriter。理解...
本文将对Java之IO流进行深入的解析和总结。 首先,理解流的概念至关重要。流是数据的流动,它抽象了从数据源读取数据或向接收端写入数据的过程。Java中的IO流机制允许开发者方便地控制数据在不同介质间的流动,例如...
2022年的Java IO流学习总结主要涵盖以下核心知识点: 1. **流的概念**:流是数据传输的抽象概念,表示数据的流动方向,可以是从文件到内存,也可以是从键盘到屏幕。Java中的IO流分为两种基本类型,字节流(Byte ...
### Java IO流总结 #### 一、Java IO流概述及概念 **毕向东**老师是一位经验丰富的Java讲师,以其通俗易懂的教学风格受到广大学员的喜爱。在其分享的《Java Io流总结》文档中,详细介绍了Java IO流的基础概念、...
根据提供的信息,我们可以总结出以下关于“IO流练习题1”的相关知识点: ### IO流基础知识 #### 1. IO流概念 在计算机科学中,**输入/输出流(Input/Output Stream,简称IO流)**是指数据从一个地方到另一个地方的...
Java的IO流是程序与外部交互数据的重要工具,它允许开发者实现数据的读取、写入、复制和转换。在Java中,流被分为两类:字节流(Byte Stream)和字符流(Character Stream),它们都是Java IO体系的一部分。 字节流...
总结一下,Java的IO流提供了丰富的工具来处理文件复制。字节流是最基础的流类型,适用于任何类型的数据。通过组合不同的输入流和输出流,我们可以构建出适应不同需求的文件操作解决方案。理解并熟练掌握IO流的使用,...
在深入探讨“io流复制文本文件图解”的知识点前,我们先来理解一下IO流的基本概念。IO(Input/Output)流是Java编程语言中处理输入输出操作的基础框架,广泛应用于文件读写、网络通信等场景。Java中的IO流分为字节流...
总结来说,Java IO流是处理输入输出的核心工具,无论是在本地文件系统还是在网络环境中,都能提供高效、灵活的文件操作手段。通过组合不同的流类,可以实现复杂的文件读写、上传和下载任务,同时适应文本和非文本...
总结,Java的IO流提供了强大而灵活的文件操作功能,通过`FileInputStream`和`FileOutputStream`可以实现文件的复制,而通过递归调用可以实现整个文件夹的复制。在实际开发中,我们需要根据具体需求进行相应的异常...
Java IO流是Java编程中非常基础且重要的部分,无论是进行简单的文件操作还是复杂的网络通信,都离不开对IO流的理解和应用。掌握Java IO流不仅可以提高代码的可维护性和扩展性,还能有效提升程序员解决问题的能力。...
下面通过一个简单的例子来展示如何使用Java IO流进行文件读写操作: 1. **FileWriter**:用于写入文件。 - 创建一个`FileWriter`对象时,可以选择是否追加内容到文件末尾。 ```java FileWriter fw = new ...
### Java IO流处理详解 #### I/O流概述 在Java编程中,输入/输出(I/O)处理是一项核心技能,涉及从键盘读取数据、向屏幕输出数据、从文件读写数据以及在网络连接上进行读写操作。Java将这些不同的输入输出源抽象...
2. 简单的Java IO流使用例子:文章中可能会给出简单的例子,展示如何使用Java IO的字节流和字符流进行数据的读写。 3. 源代码分析:文章中可能会深入分析几个实现类的源代码,来说明Java IO的内部工作机制。 4. ...
#### 选择IO流的准则 1. **原始数据格式**:考虑数据的原始格式,例如是文本还是二进制数据。 2. **输入或输出**:确定是读取数据还是写入数据。 3. **是否需要转换流**:如果需要在字节流和字符流之间转换,则需要...