java读取txt文件
原创
©著作权归作者所有:来自51CTO博客作者我是大头鸟的原创作品,请联系作者获取转载授权,否则将追究法律责任
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文件的第一步
要理解这个类需要知道的是字节流和字符流之间的关系,而且我们需要知道一些类之间的关系
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();
}
}