一:为什么有IO流?
在显示生产中,我们的数据,都是不停的往过输入和输出,我们将这种模式称作为流。并且在输入和输出的过程中,我们包装了一些其他类。
二:什么是IO流?
1. 按照数据处理单位,可以划分为字节流和字符流。除了文本的为字符流,其他都是字节流。区别在于,字节流为8个字节,字符流为16个字节。
2. 根据数据的流向,分为输入流,输出流。从节点到内存的,为输入流。从内存到节点的为输出流。
3. 根据功能分类,分为节点流和处理流。节点流,可以直接本身从数据源或者目的地进行读写。处理流,是通过进行包装的流进行输入和输出。从而提高性能。
三:怎么使用IO流?
1. 基本操作步骤。
在进行任何操作之前,首先要明确目的(读还是写),找准源头(读取),找准目的地(写出)。
(1)建立联系 :这一步骤是为了获取流,如果此时是文件,则需要将文件抽象到内存形成对象。后期也可以是其他的数据源。
(2)选择流:从读写、数据单元和功能方面考虑。输入|输出,字节|字符,结点流处理流。
(3)执行操作:该读就读,该写就写。考虑是一次性完成还行需要循环。
(4)释放资源:程序中打开的文件 IO 资源不属于内存中的资源,垃圾回收无法回收,需要显示关闭。
2.各个接口常用的方法。
(1)InputStream
(2)Reader
(3)OutputStream
(4)Writer
3. 注意点。
(1)文件输出流中,增加条件true,那么在是对文件进行追加,如果没有,那就是覆盖。
FileOutputStream fileOutputStream = new FileOutputStream(file1,true);
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file1,true));
4.代码。
(1)FileReader_FileWriter
package day03_IO;
import java.io.*;
public class FileReader_FileWriter_test {
public static void main(String[] args) throws IOException {
//第一步:找到数据源
File file = new File("C:/Users/admin/Desktop/111.txt");
File file1 = new File("C:/Users/admin/Desktop/333.txt");
file1.createNewFile();
//第二步:选择流
Reader reader = new FileReader(file);
FileWriter fileWriter = new FileWriter(file1);
//第三步:进行处理
char[] chars = new char[20];
reader.read(chars);
fileWriter.write(chars);
fileWriter.flush();
//第四步:关闭流
reader.close();
fileWriter.close();
}
}
(2)fileInputStream_FileOutputStream
package day03_IO;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class fileInputStream_FileOutputStream_test {
public static void main(String[] args) throws IOException {
//第一步:找到数据源
File file = new File("C:/Users/admin/Desktop/111.txt");
File file1 = new File("C:/Users/admin/Desktop/222.txt");
file1.createNewFile();
//第二步:选择流
FileInputStream fileInputStream = new FileInputStream(file);
FileOutputStream fileOutputStream = new FileOutputStream(file1,true);
//第三步:进行处理
byte[] bytes = new byte[100];
fileInputStream.read(bytes);
fileOutputStream.write(bytes);
fileOutputStream.flush();
//第四步:关闭流
fileInputStream.close();
fileOutputStream.close();
}
}
(3)FileReader_FileWriter
package day03_IO;
import java.io.*;
public class FileReader_FileWriter_test {
public static void main(String[] args) throws IOException {
//第一步:找到数据源
File file = new File("C:/Users/admin/Desktop/111.txt");
File file1 = new File("C:/Users/admin/Desktop/333.txt");
file1.createNewFile();
//第二步:选择流
Reader reader = new FileReader(file);
FileWriter fileWriter = new FileWriter(file1);
//第三步:进行处理
char[] chars = new char[20];
reader.read(chars);
fileWriter.write(chars);
fileWriter.flush();
//第四步:关闭流
reader.close();
fileWriter.close();
}
}