一 JAVA语言中主要通过流来完成IO操作。

流:计算机的输入输出之间流动的数据序列,也是类的对象。java中的流方式就像是建立在数据交换源和目的之间的一条通信路径。

数据源:计算机中的数据源是指可以提供数据的地方,包括键盘,磁盘文件,网络接口等。

输入流:从程序外部传向程序的流。输入流只能从中读数据。

输出流: 从程序传到外部的流。输出流只能向其写入数据。

所谓的输入和输出是以程序为中心的,数据流向程序即输入流,数据从程序中流出即输出流。

二 字节流

字节流是以字节为传输单位的数据读写形式,用于直接读取二进制数据,如图像和声音文件等。

InputStream和OutputStream分别为面向字节的输入流类的父类和输出流类的父类。InputStream和OutputStream都是抽象类。

FileInputStream和FileOutputStream是文件流类,他们是InputStream和OutputStream的子类。

FileInputStream类的一般用法是:先创建一个FileInputStream对象关联到要读取的文件,然后调用read方法读取字节数据到程序中,再进行其他处理。因为read方法是按字节的读入的,所以汉字被读入时会出现乱码。

FileOutputStream类的一般用法是:先创建一个FileOutputStream对象关联到要写入的文件,然后调用write方法将字节数据写到程序中。如果进行写操作的文件不存在,则自动创建该文件,但是如果文件所在的路径也不存在,则运行时会报错。

例如 FileOutputStream fos = new FileOutputStream("D:\\test.txt");是不会报错的,

      FileOutputStream fos = new FileOutputStream("D:\\tmp\\test.txt");如果之前在D盘中没有tmp这个文件夹,那么此时运行这条语句会报错。

 

代码如下

 1 package 文件操作_FileInputStream和FileOutputStream;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 
 8 public class FileDemo {
 9     public static void main(String[] args) {
10         try {
11             FileInputStream fis = new FileInputStream("D:\\test.txt");
12             int  ch = fis.read();
13             while (ch != -1) {
14                 System.out.print((char) ch);
15                 ch = fis.read();
16             }
17 //            byte[] buffer = new byte[8];
18 //            fis.read(buffer);
19 //            for (int i = 0; i < buffer.length; i++) {
20 //                System.out.print((char) buffer[i]);
21 //            }
22             FileOutputStream fos = new FileOutputStream("D:\\test1.txt");
23             byte[] b = {'a', 'c', 'd', 'e', 'x'};
24             fos.write(b);
25             fis.close();
26             fos.close();
27         } catch (FileNotFoundException e) {
28             // TODO Auto-generated catch block
29             e.printStackTrace();
30         } catch (IOException e) {
31             e.printStackTrace();
32         }
33     }
34     
35 
36 }
View Code

相关文章: