Java如何读取文件呢?
下文笔者讲述java中读取文件的多种方式分享,如下所示
Java读取文件常见的有以下四种方式
读取文件有以下四种方式: 使用FileInputStream BufferedReader Scanner类 Java NIO
使用FileInputStream
FileInputStream 从文件系统中的某个文件中获得输入字节 可以用于读取字节或字节数组
import java.io.FileInputStream; import java.io.IOException; public class ReadFileWithFileInputStream { public static void main(String[] args) { FileInputStream fis = null; try { fis = new FileInputStream("test.txt"); int i; while ((i=fis.read())!=-1){ System.out.print((char)i); } } catch (IOException e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
使用BufferedReader
BufferedReader 是一个包装类 它封装一个Reader对象 然后将输入缓冲到内部字符数组中 可提高文件读取的效率
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadFileWithBufferedReader { public static void main(String[] args) { BufferedReader br = null; try { br = new BufferedReader(new FileReader("test.txt")); String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
使用Scanner类
Scanner类 是Java5的新特性 它可以方便地读取文件 可以使用正则表达式来分析
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ReadFileWithScanner { public static void main(String[] args) { try { Scanner scanner = new Scanner(new File("test.txt")); while (scanner.hasNextLine()) { System.out.println(scanner.nextLine()); } scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
使用Java NIO
Java NIO FileChannel是一个可以进行读取、写入、映射和操作文件的通道 ByteBuffer则是一个可以包装字节类型数据的缓冲区
import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; public class ReadFileWithJavaNIO { public static void main(String[] args) { try { RandomAccessFile aFile = new RandomAccessFile("test.txt", "r"); FileChannel inChannel = aFile.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(1024); while(inChannel.read(buffer) > 0){ buffer.flip(); while(buffer.hasRemaining()){ System.out.print((char) buffer.get()); } buffer.clear(); } aFile.close(); } catch (IOException e) { e.printStackTrace(); } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。