java从txt文件中读取多行内容
时间: 2023-07-18 15:08:10 浏览: 48
可以使用Java中的BufferedReader类来从txt文件中读取多行内容。以下是一个简单的示例代码:
```
try {
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
```
在这个示例代码中,我们使用了BufferedReader将文件读入内存,并使用readLine()方法逐行读取。当读取到文件末尾时,readLine()方法会返回null,因此我们使用while循环来不断读取直到文件结束。最后,我们关闭了BufferedReader。
相关问题
java读取多行文件到map
可以使用以下代码将多行文件内容读取到 Map 中:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
public class FileToMap {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
String key = null;
StringBuilder valueBuilder = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = br.readLine()) != null) {
if (line.startsWith("#")) {
// 处理注释行
continue;
} else if (line.contains("=")) {
// 处理键值对行
if (key != null) {
// 如果已经存在 key,将之前的 value 添加到 map 中
map.put(key, valueBuilder.toString());
}
String[] parts = line.split("=");
key = parts[0];
valueBuilder = new StringBuilder(parts[1]);
} else {
// 处理多行 value
valueBuilder.append("\n").append(line);
}
}
// 处理最后一个键值对
if (key != null) {
map.put(key, valueBuilder.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(map);
}
}
```
以上代码将文件中的键值对读取到 `Map<String, String>` 中,并处理了多行 value 的情况。文件中以 `#` 开头的行被认为是注释行,会被忽略。每个键值对占一行,以 `=` 分隔。如果 value 是多行,则在每行末尾添加 `\n`,将多行 value 合并成一个字符串。
java读取txt文件中某几行并输出到屏幕上
要读取txt文件中的多行内容,可以在while循环中使用一个计数器来记录当前行号,当行号在需要读取的范围内时,将该行内容输出到屏幕上。具体实现方法如下:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadTxtFile {
public static void main(String[] args) {
String filePath = "test.txt"; // txt文件的路径
int startLine = 3; // 要读取的起始行号,假设为第3行
int endLine = 5; // 要读取的结束行号,假设为第5行
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
int currentLine = 1;
while ((line = br.readLine()) != null) {
if (currentLine >= startLine && currentLine <= endLine) {
System.out.println(line);
}
if (currentLine > endLine) {
break;
}
currentLine++;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
其中,startLine和endLine分别表示要读取的起始行号和结束行号。在while循环中,使用readLine()方法逐行读取文件,同时记录当前行号。当当前行号在需要读取的范围内时,将该行内容输出到屏幕上。当当前行号大于结束行号时,跳出循环。最后记得要关闭文件流。