Java如何读取文件呢?

欣喜 Java经验 发布时间:2023-11-24 15:52:14 阅读数:11430 1
下文笔者讲述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();
        }
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202311/17008123627363.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者