何为IO流?形象点就如同水流一般,专业点讲它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出。
按照操作单元划分,可以划分为字节流和字符流。字节流操作的单元是数据单元是8位的字节,字符流操作的是数据单元为16位的字符。
FileInputStream:字节输入流,指数据从磁盘读到计算机内存中。父类:InputStream
FileOutputStream:字节输出流,指数据从计算机内存写入到磁盘中。父类:OutputStream
1.FileInputStream应用:
public void testFileRead() throws IOException{
File file = new File("E:\\java.txt");
FileInputStream fis = new FileInputStream(file);
int i = 0;
while((i = fis.read())!=-1){
System.out.print((char)i);
}
fis.close();
}
2.FileOutputStream 应用:
public void testFileWrite() throws IOException{
File file = new File("E:\\java.txt");
String str = "123哈哈哈";
//建立通道,true 内容追加到文件中
FileOutputStream fos = new FileOutputStream(file,true);
//打开水龙头
fos.write(str.getBytes());
//关闭水龙头
fos.close();
}
3.通过字节流进行文件复制
思路:1.先通过FileInputStream 将文件内容读到内存
2.再通过FileOutStream讲文件内容写入到目标磁盘
3.关闭IO流
注:大文件可以通过BufferedInputStream和BufferedOutStream进行操作
例:拷贝2.21G的数据库文件,耗时77秒
public static void main(String[] args) throws IOException {
// 输入流:将数据库文件存到计算机内存中
FileInputStream fis = new FileInputStream("F:\\20190712.dmp");
BufferedInputStream bis = new BufferedInputStream(fis);
// 输出流 :将数据库文件从计算机内存 复制 到D盘
FileOutputStream fos = new FileOutputStream("D:\\20190712.dmp");
BufferedOutputStream bos = new BufferedOutputStream(fos);
byte[] buffer = new byte[2048];
int len = 0;
long startTime = System.currentTimeMillis(); // 获取开始时间
while ((len = bis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
long endTime = System.currentTimeMillis(); // 获取结束时间
System.out.println("文件复制耗时:" + (endTime - startTime) / 1000 + "秒!");
// 关闭IO流:关闭原则 先关闭输入流 再关闭输出流
bis.close();
fis.close();
bos.close();
fos.close();
}
分享到:
相关推荐
Java IO流学习总结 Java IO流是Java平台中用于处理输入输出的重要机制,它提供了一种在各种数据源和目的地之间传输数据的方式。流的概念是一个抽象的字节序列,允许我们从数据源读取数据或者向接收端写入数据。在...
Java IO流分为两大类:字节流和字符流。字节流处理的是单个8位的字节,而字符流处理的是16位Unicode字符。每种流又有输入流和输出流之分,用于数据的读取和写入。 1. 字节流: - InputStream(输入流)和...
主要描述了常用字节流的用法,附上一些代码!
Java IO 包含了许多类,如InputStream、OutputStream、Reader、Writer等,它们分别用于处理字节流和字符流。字节流适用于二进制数据,而字符流适用于文本数据。Java IO 还包括Filter流,可以用来装饰其他流,添加...
IO流是Java语言中处理输入/输出的重要工具,它包括字节流和字符流两大类。本文将重点讨论字符流的相关概念及其用法。 #### 字符流简介 字符流主要用来处理文本数据,它是以字符为单位进行读写的流。字符流分为字符...
JavaIO流学习总结 JavaIO流是Java语言中最基本的输入/输出机制,它提供了多种方式来读取和写入数据。下面是JavaIO流的学习总结。 一、 IO流的分类 IO流可以从不同的角度进行分类,包括: * 按流的方向分为:输入...
2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
Java IO系统分为两大类:字节流和字符流。字节流主要用于处理任何类型的原始数据,如图片、音频文件或者二进制文件,而字符流则专注于处理基于文本的数据。本文将深入探讨这两类流的原理、用途以及它们之间的关联。 ...
下面是对Java IO流的详细总结: 1. 流的概念: 流是一种抽象的数据传输方式,可以将数据从一个地方传输到另一个地方。Java中的流分为输入流和输出流,分别用于读取和写入数据。流按照处理数据的不同类型,又可以...
字节流是Java IO流中最基本的流类型,可以处理一切类型的数据。字节流可以分为两种:输入流和输出流。 a) 输入流:InputStream InputStream是字节流的输入流,负责从外部世界输入数据到Java应用程序中。常用的...
Java IO 流学习总结的主要内容是对 Java 语言中 IO 流的机制和应用进行了详细的介绍,包括流的基本概念、字节流和字符流的区别、IO 体系的基本结构、FileReader 和 FileWriter 的使用、IO 流的应用等等。
1. 字节流:Java的`java.io`包中提供了处理字节流的类,如`InputStream`和`OutputStream`作为所有字节输入流和输出流的基类。它们的子类如`FileInputStream`和`FileOutputStream`分别用于文件的读写。 2. 字符流:...
Java IO流按照功能可以分为字节流和字符流,根据流向又分为输入流和输出流。字节流处理的是8位的字节,而字符流处理的是16位的Unicode字符。基础流类包括InputStream/OutputStream(字节流)和Reader/Writer(字符...
Java IO流主要分为两大类:字节流(Byte Stream)和字符流(Character Stream),并根据数据流向分为输入流(Input Stream)和输出流(Output Stream)。 1. **字节流与字符流的区别** - 字节流处理的是原始的字节...
以下是对Java IO流的详细总结: 一、流的分类 1. 按流的方向:Java IO流分为输入流(InputStream和Reader)和输出流(OutputStream和Writer)。输入流用于从数据源读取数据,而输出流则用于向目标位置写入数据。 ...
其次,根据处理数据的基本单位,Java IO流又分为字节流(Byte Stream)和字符流(Character Stream)。字节流处理数据的基本单位是字节,适用于所有类型的数据,包括二进制文件。字符流以字符为基本单位,主要用于...
Java IO流分为两大类:字符流(Character Stream)和字节流(Byte Stream)。字符流处理单个字符,而字节流处理8位的字节序列。它们又可以进一步细分为输入流(InputStream/Reader)和输出流(OutputStream/Writer)...
2. Java中的流对象及其特点:Java的IO库中定义了多种流对象,主要分为字节流和字符流两大类,它们又分别有输入流和输出流之分。字节流包括InputStream和OutputStream,字符流包括Reader和Writer。字节流适用于处理...
在这个大总结中,我们将深入探讨Java IO流的基本概念、分类、常用类以及实践应用。 1. **基本概念** - **流(Stream)**:在Java中,流是一个抽象的概念,代表数据的有序序列。它可以是字节流或字符流,流向可以是...