在Java中,从文件中读取数据是一个常见且重要的操作。这可以通过不同的方式完成,包括:1、使用FileReader和BufferedReader类;2、使用FileInputStream类;3、使用Scanner类;4、使用Java NIO API。
首先,我们会详细讨论如何使用FileReader和BufferedReader类从文件中读取数据。
一、使用FileReader和BufferedReader类
在Java中,FileReader和BufferedReader类是常用的两种用于从文件中读取数据的方式。
1.1 FileReader类
FileReader类是Java中用于读取字符文件的便捷类。它的工作方式是创建一个新的FileReader,给定要读取的文件的名字。然后,你可以使用read()方法从文件中读取字符。
FileReader fr = new FileReader("fileName");
int i;
while ((i=fr.read()) != -1) {
System.out.print((char) i);
}
在上面的代码片段中,我们首先创建了一个新的FileReader,传入我们想要读取的文件的名字。然后,我们使用了一个while循环,通过read()方法从文件中读取字符,直到读取到文件的末尾。
1.2 BufferedReader类
虽然FileReader可以用来从文件中读取数据,但是它每次只能读取一个字符,这在处理大型文件时可能会非常慢。这就是为什么我们经常与BufferedReader类一起使用它。
BufferedReader类从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。我们可以将FileReader传递给BufferedReader的构造函数来创建一个新的BufferedReader。
FileReader fr = new FileReader("fileName");
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
在上面的代码片段中,我们首先创建了一个新的FileReader,然后我们将它传递给了BufferedReader的构造函数。然后,我们使用了一个while循环,通过readLine()方法从文件中读取一行,直到读取到文件的末尾。
二、使用FileInputStream类
除了使用FileReader和BufferedReader类之外,我们还可以使用FileInputStream类从文件中读取数据。FileInputStream用于从文件系统的文件中读取字节。
FileInputStream fis = new FileInputStream("fileName");
int i;
while ((i = fis.read())!= -1) {
System.out.print((char) i);
}
在上面的代码片段中,我们首先创建了一个新的FileInputStream,传入我们想要读取的文件的名字。然后,我们使用了一个while循环,通过read()方法从文件中读取字节,直到读取到文件的末尾。
三、使用Scanner类
我们还可以使用Scanner类从文件中读取数据。Scanner类是一个简单的文本扫描器,它可以解析原始类型和字符串。
File file = new File("fileName");
Scanner sc = new Scanner(file);
while (sc.hasNextLine()) {
System.out.println(sc.nextLine());
}
在上面的代码片段中,我们首先创建了一个新的File对象,然后我们将它传递给了Scanner的构造函数。然后,我们使用了一个while循环,通过nextLine()方法从文件中读取一行,直到读取到文件的末尾。
四、使用Java NIO API
Java NIO (New IO) 是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO提供了与标准IO不同的IO工作方式。
Path path = Paths.get("fileName");
byte[] bytes = Files.readAllBytes(path);
在上面的代码片段中,我们首先创建了一个新的Path对象,然后我们使用Files类的readAllBytes()方法从文件中读取所有字节。
总结来说,Java提供了多种方式从文件中读取数据。你可以根据你的需求选择最适合的方式。
相关问答FAQs:
1. 如何在Java中读取文件中的数据?
Java中可以使用File类和Scanner类来读取文件中的数据。首先,使用File类创建一个文件对象,然后使用Scanner类来读取文件中的数据。具体操作步骤如下:
- 创建一个File对象,指定要读取的文件路径。
- 创建一个Scanner对象,将File对象作为参数传入。
- 使用Scanner对象的方法来读取文件中的数据,例如使用nextLine()方法逐行读取文本文件中的数据。
2. 如何读取二进制文件中的数据?
要读取二进制文件中的数据,可以使用Java的InputStream类。具体操作步骤如下:
- 创建一个File对象,指定要读取的二进制文件路径。
- 创建一个InputStream对象,将File对象作为参数传入。
- 使用InputStream对象的read()方法来读取文件中的数据,read()方法会返回一个整数,代表读取到的字节。
3. 如何读取CSV文件中的数据?
要读取CSV文件中的数据,可以使用Java的BufferedReader类和StringTokenizer类。具体操作步骤如下:
- 创建一个File对象,指定要读取的CSV文件路径。
- 创建一个BufferedReader对象,将File对象作为参数传入。
- 使用BufferedReader对象的readLine()方法来逐行读取CSV文件中的数据。
- 使用StringTokenizer类来对每行数据进行分割,可以指定分隔符进行分割。
- 使用StringTokenizer对象的nextToken()方法来获取分割后的每个数据项。
原创文章,作者:Edit1,如若转载,请注明出处:https://docs.pingcode.com/baike/412617