为了方便在Java中读取文件,我们通常使用Java文件读取工具类。下面是8种常用的Java文件读取工具类: BufferedReader、Scanner、InputStreamReader、FileInputStream、FileReader、LineNumberReader、RandomAccessFile和BufferedInputStream。
- BufferedReader
BufferedReader类是Java标准类库中用于读取文本文件最常用的工具类之一。该类可以一次读取一行或多行文本,然后将其存储到缓冲区中,从而提高了读取效率。
以下是使用BufferedReader类读取文本文件的示例代码:
try {
BufferedReader reader = new BufferedReader(new FileReader("path/to/textfile.txt"));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
- Scanner
Scanner是一个解析器,它可以从文件、键盘输入、字符串等读取数据,具有非常灵活和方便的API,并且可以易于获取用户输入。
以下是使用Scanner类读取文本文件的示例代码:
try {
Scanner scanner = new Scanner(new FileReader("path/to/textfile.txt"));
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
- InputStreamReader
InputStreamReader是Java的基本字节到字符的桥梁,可以通过使用指定的字符集读取字节流并将其解码为字符流。
以下是使用InputStreamReader类读取文本文件的示例代码:
try {
InputStreamReader reader = new InputStreamReader(new FileInputStream("path/to/textfile.txt"), StandardCharsets.UTF_8);
int data = reader.read();
while(data != -1){
char currentChar = (char) data;
System.out.print(currentChar);
data = reader.read();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
- FileInputStream
FileInputStream是Java API提供的一个用于读取文件的类,提供了读取文件中字节流的方法。
以下是使用FileInputStream类读取文本文件的示例代码:
try {
FileInputStream inputStream = new FileInputStream("path/to/textfile.txt");
byte[] bytes = new byte[1024];
int bytesRead = inputStream.read(bytes);
while (bytesRead != -1) {
for (int i = 0; i < bytesRead; i++) {
System.out.print((char) bytes[i]);
}
bytesRead = inputStream.read(bytes);
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
- FileReader
FileReader是Java IO包提供的一个用于读取文件的类,可以按字符读取文件内容。
以下是使用FileReader类读取文本文件的示例代码:
try {
FileReader reader = new FileReader("path/to/textfile.txt");
int data = 0;
while ((data = reader.read()) != -1) {
System.out.print((char) data);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
- LineNumberReader
LineNumberReader是BufferedReader的子类,可以用来从文件中读取文本,并同时跟踪行号。
以下是使用LineNumberReader类读取文本文件的示例代码:
try {
LineNumberReader reader = new LineNumberReader(new FileReader("path/to/textfile.txt"));
String line = reader.readLine();
while (line != null) {
System.out.println(reader.getLineNumber() + ": " + line);
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
- RandomAccessFile
RandomAccessFile是Java API中用于读取和写入文件的类之一,它提供了向文件中随意位置写入数据和读取数据的接口。
以下是使用RandomAccessFile类读取文本文件的示例代码:
try {
RandomAccessFile file = new RandomAccessFile("path/to/textfile.txt", "r");
String line = "";
while ((line = file.readLine()) != null) {
System.out.println(line);
}
file.close();
} catch (IOException e) {
e.printStackTrace();
}
- BufferedInputStream
BufferedInputStream是Java API提供的一个用于读取字节流的高效缓冲区输入流。
以下是使用BufferedInputStream类读取文本文件的示例代码:
try {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("path/to/textfile.txt"));
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = bis.read(buffer)) != -1) {
System.out.print(new String(buffer, 0, bytesRead));
}
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
以上是8种常用的Java文件读取工具类,通过这些例子,你可以在Java中根据需要选择适当的文件读取方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA文件读取常用工具类(8种) - Python技术站