文件读操作(IO编程)

将文件中的数据读入程序,是将程序外部的数据传入程序中,应该使用输入流——InputStream或Reader。而由于读取的是特定的数据源——文件,则可以使用输入对应的子类FileInputStream或FileReader实现。

读取文件是分两个步骤:1、将文件中的数据转换为流,2、读取流内部的数据。其中第一个步骤由系统完成,只需要创建对应的流对象即可,对象创建完成以后步骤1就完成了,第二个步骤使用输入流对象中的read方法即可实现了。

   使用输入流进行编程时,代码一般分为3个部分:1、创建流对象,2、读取流对象内部的数据,3、关闭流对象。下面以读取文件的代码示例:

package test;

import java.io.FileInputStream;

public class ReadFile1 {
public static void main(String[] args) {
	 //声明流对象
    FileInputStream fis = null;                 
    try{
             //创建流对象
             fis = new FileInputStream("e:\a.txt");
             //读取数据,并将读取到的数据存储到数组中
             byte[] data = new byte[1024]; 
//当前下标       
             int i = 0; 
             //读取流中的第一个字节数据
             int n = fis.read();
             //依次读取后续的数据
//未到达流的末尾       
             while(n != -1){
                      //将有效数据存储到数组中
                      data[i] = (byte)n;
                      //下标增加
                      i++;
                      //读取下一个字节的数据
                       n = fis.read();
             }
            
             //解析数据
             String s = new String(data,0,i);
             //输出字符串
             System.out.println(s);
    }catch(Exception e){
             e.printStackTrace();
    }finally{
             try{
                      //关闭流,释放资源
                      fis.close();
             }catch(Exception e){}
    }
}
}

  

package test;

import java.io.FileInputStream;
//使用FileInputStream读取文件
public class ReadFile2 {
public static void main(String[] args) {
	 //声明流对象
    FileInputStream fis = null;                 
    try{
             //创建流对象
             fis = new FileInputStream("e:\a.txt");
             //读取数据,并将读取到的数据存储到数组中
             byte[] data = new byte[1024]; //数据存储的数组
             int i = fis.read(data);
            
             //解析数据
             String s = new String(data,0,i);
             //输出字符串
             System.out.println(s);
    }catch(Exception e){
             e.printStackTrace();
    }finally{
             try{
                      //关闭流,释放资源
                      fis.close();
             }catch(Exception e){}
    }
}
}

  

原文地址:https://www.cnblogs.com/ipetergo/p/7637028.html