java读取txt文件

java如何读入txt文本文件的内容:java从txt文件中读取内容有多种方法,包括按照行读取文件,按照字节读取文件,首先我们来看看按照行读取txt文件中的内容的一般的步骤:

首先是我们创建一个file对象,或者成为创建一个操作文件的句柄,为什么称为句柄,是因为在windows编程中的过程中,因为是面向对象的,我们要对窗口进行操作都是要创建一个窗口的句柄,所以我们对文件进行操作要创建一个文件的句柄,这个文件句柄要关联我们要操作的txt文件

File file=new File("C:\\Users\\Administrator\\Desktop\\hello.txt")

里面的字符串是我们要操作的文件的路径,在这个地方我们来说一下File类,java中的File类一抽象的方式代表文件明名和目录路径名称,该类的主要的用于是文件和目录从创建,文件的查找和删除。File对象是磁盘中实际存在的文件和目录。我们可以通过下面的四种方法来创建一个File实例

File(File parent, String child);

File(String pathname) 

File(String parent, String child) 

File(URI uri) 上面这些都是File的构造方法,通过这些构造方法,我们可以创建一个文件的实例

当我们创建了这样的对象之后,可以通过已经提供的各种方法来对文件信息进一步的了解

进一步的了解File类:http://www.runoob.com/java/java-file.html

上面是我们对File这个类的一些了解,当然创建一个File对象也是我们进行读取txt文件的第一步

InputStreamReader
要理解这个类需要知道的是字节流和字符流之间的关系,而且我们需要知道一些类之间的关系
InputStream是表示所有的字节输入流的的所有类的超类或者称为是父类
那么FileInputStream是InputSteam的子类,他是表示从某个文件系统中获取到输入字节,其构造方法有三个:FileInputSteam(File file)通过打开一个实际的文件连接来创建一个FileInputSteam,该文件是通过文件系统File对象来指定
FileInputStream (FileDescriptor  fdObj) 
          通过使用文件描述符 fdObj 创建一个 FileInputStream ,该文件描述符表示到文件系统中某个实际文件的现有连接。 
FileInputStream (String  name) 
          通过打开一个到实际文件的连接来创建一个 FileInputStream ,该文件通过文件系统中的路径名 name 指定
关于文件的读取,里面涉及的到各种缓冲区啊,还有字符和字节是相当的复杂
FileInputSteam类是以二进制进行输入输出,速度是比较快的,但是他的read()方法是读取到的是一个字节,是不方便对字符进行查找和修改的利用二进制的形式,但是Reader类是弥补了这个缺陷,可以以文件格式的进行输入输出,非常的方便,可以使用BufferedReader的readLine()方法来读取一行一行的文本
编码:
InputStreamReader是字节转换成为字符的桥梁,我们可以在构造器中指定编码格式,如果不指定就会采用系统中默认的编码格式GBK
FileInputStream (FileDescriptor  fdObj) 
          通过使用文件描述符 fdObj 创建一个 FileInputStream ,该文件描述符表示到文件系统中某个实际文件的现有连接。 
FileInputStream (String  name) 
          通过打开一个到实际文件的连接来创建一个 FileInputStream ,该文件通过文件系统中的路径名 name 指定
下面是几种比较规范的格式:
1) File file = new File ("hello.txt"); 
FileInputStream in=new FileInputStream (file); 
2) File file = new File ("hello.txt"); 
FileInputStream in=new FileInputStream (file); 
InputStreamReader inReader=new InputStreamReader (in,"UTF-8"); 
BufferedReader bufReader=new BufferedReader(inReader); 
3) File file = new File ("hello.txt"); 
FileReader fileReader=new FileReader(file); 
BufferedReader bufReader=new BufferedReader(fileReader);
也就是将文件中的内容读取出来是需要进行考虑到文件的内容的,编码格式,字节和字符流

public static void readTxtFile(String filePath){
        try{
            String encoding="GBK";
            File file=new File(filePath);
            if(file.isFile() && file.exists()){
             InputStreamReader read=new InputStreamReader(new FileInputStream(file),encoding);
                BufferedReader bufferedReader=new BufferedReader(read);
                String lineTxt=null;
                while((lineTxt=bufferedReader.readLine())!=null){
                    System.out.println(lineTxt);
                }
                read.close();
            }else
            {
                System.out.println("找不到指定的文件");
            }
        }catch (Exception e){
            System.out.println("读取文件内容出错");
           e.printStackTrace();
        }
    }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值