io流讀取文件的幾種方式:

io流讀取文件的幾種方式:大體能夠分爲兩種一個是按照字節讀取文件,多數用於讀取文本類文件,一種是按照字節讀取文件多數用來讀取音視頻文件,固然也能夠用來度寫文本類型的文件java

下面就是測試完整代碼:測試文件須要本身放置和更改app

package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @author dayu
 * @version 建立時間:2018年1月19日 上午10:13:54
 *          測試io讀取文件的幾種方式
 */
public class ReadFile
{
    public static void main(String[] args)
    {
        //文件位置
        String filepath = "D:\\d.txt";
        
        /** 一次讀取全部內容 */
        FileInputStreamReadFile(filepath);
        System.out.println("=====================");
        
        /** 以行爲單位讀取文件,經常使用於讀面向行的格式化文件 */
        BufferedReaderReadFile(filepath);
        System.out.println("=====================");
        
        /** 以字節爲單位讀取文件,經常使用於讀二進制文件,如圖片、聲音、影像等文件。 */
        ReadFileByByte(filepath);
        System.out.println("\n=====================");
        
        /** 以行爲單位讀取文件,經常使用於讀面向行的格式化文件 */
        InputSteamReaderReadFile(filepath);
        System.out.println("\n=====================");
        
    }
    
    private static void InputSteamReaderReadFile(String filepath)
    {
        try
        {
            InputStreamReader sr = new InputStreamReader(new FileInputStream(new File(filepath)));
            int temp = 0;
            while ((temp = sr.read()) != -1)
            {
                System.out.print((char)temp);
            }
            sr.close();
        }
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
    
    private static void ReadFileByByte(String filepath)
    {
        try
        {
            File file = new File(filepath);
            FileInputStream fis = new FileInputStream(file);
            
            int b = 0;
            while ((b = fis.read()) != -1)
            {
                System.out.print((char)b);
            }
            fis.close();
        }
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
    
    private static void BufferedReaderReadFile(String filepath)
    {
        try
        {
            StringBuffer sb = new StringBuffer();
            BufferedReader br = new BufferedReader(new FileReader(new File(filepath)));
            String readLine = "";
            while ((readLine = br.readLine()) != null)
            {
                sb.append(readLine + "\n");
            }
            br.close();
            System.out.print(sb.toString());
        }
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
    
    private static void FileInputStreamReadFile(String filepath)
    {
        try
        {
            File file = new File(filepath);
            FileInputStream fis = new FileInputStream(file);
            
            long filelength = file.length();
            byte[] bb = new byte[(int)filelength];
            
            fis.read(bb);
            fis.close();
            System.out.println(new String(bb));
        }
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
相關文章
相關標籤/搜索