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();
}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


