path.of()方法,控制台读取文件到字符串中
时间: 2024-03-02 16:53:27 浏览: 204
使用`Path.of()`方法和`Files.readString()`方法可以将文件内容读取到字符串中。以下是示例代码:
```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main {
public static void main(String[] args) throws IOException {
Path path = Path.of("file.txt"); // 创建Path对象
String content = Files.readString(path); // 读取文件内容到字符串中
System.out.println(content); // 输出文件内容
}
}
```
以上代码读取了当前目录下的`file.txt`文件,并将文件内容读取到字符串中,最后输出到控制台。
需要注意的是,`Files.readString()`方法是Java 11中新加入的方法,如果您的Java版本低于11,需要使用其他方法读取文件内容。例如,在Java 8中可以使用`Files.readAllLines()`方法读取文件内容为List<String>,然后再将List<String>转换为字符串。
相关问题
Java 控制台读取字符串 作为path.of()方法的路径
您可以先使用 Java 的 Scanner 类从控制台读取字符串,然后将其作为参数传递给 Path.of() 方法来生成 Path 对象。以下是一个示例代码:
```java
import java.nio.file.Path;
import java.util.Scanner;
public class ConsoleInputPath {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入文件路径:");
String filePath = scanner.nextLine();
Path path = Path.of(filePath);
System.out.println("您输入的文件路径是:" + path);
scanner.close();
}
}
```
在上面的代码中,我们首先创建了一个 Scanner 对象,并将其绑定到标准输入流 System.in 上。然后,通过调用 Scanner 对象的 nextLine() 方法来读取用户输入的文件路径。最后,我们将读取到的文件路径作为参数传递给 Path.of() 方法来创建 Path 对象,并将其打印输出。记得最后要调用Scanner对象的close()方法来关闭输入流。
,判断如果等于字符串[INTRO]时,之后的读取内容方式改为两行读取内容,内容不能为空格和换行,一直按两行读取读取到字符串为优待政策,如果等于字符串优待政策时,就改为多行读取,结束标记为服务设施,如果等于字符串服务设施时,就改为多行读取,结束标记为[GRADE],如果等于字符串[GRADE]时,就按照逐行读取内容,最后将这些数据输出
好的,以下是Java代码实现:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
String filePath = "your_file_path_here";
try {
BufferedReader br = new BufferedReader(new FileReader(filePath));
String line;
boolean isTwoLineRead = false;
boolean isMultiLineRead = false;
while ((line = br.readLine()) != null) {
if (line.equals("[INTRO]")) { // 两行读取内容
isTwoLineRead = true;
isMultiLineRead = false;
} else if (line.equals("优待政策")) { // 多行读取,结束标记为服务设施
isTwoLineRead = false;
isMultiLineRead = true;
String endTag = "服务设施";
String content = "";
while ((line = br.readLine()) != null && !line.equals(endTag)) {
content += line.trim();
}
System.out.println("[优待政策]: " + content);
} else if (line.equals("服务设施")) { // 多行读取,结束标记为[GRADE]
isTwoLineRead = false;
isMultiLineRead = true;
String endTag = "[GRADE]";
String content = "";
while ((line = br.readLine()) != null && !line.equals(endTag)) {
content += line.trim();
}
System.out.println("[服务设施]: " + content);
} else if (line.equals("[GRADE]")) { // 逐行读取内容
isTwoLineRead = false;
isMultiLineRead = false;
} else { // 根据情况读取内容
if (isTwoLineRead) { // 两行读取
String content = line.trim() + br.readLine().trim();
System.out.println("[INTRO]: " + content);
} else if (isMultiLineRead) { // 多行读取
String content = line.trim();
while ((line = br.readLine()) != null && !line.trim().isEmpty()) {
content += line.trim();
}
System.out.println(content);
} else { // 逐行读取
System.out.println(line.trim());
}
}
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
其中,`your_file_path_here` 表示你要读取的文件路径。
代码中通过设置 `isTwoLineRead` 和 `isMultiLineRead` 变量来判断当前读取方式,根据不同情况进行读取内容,并输出到控制台。你可以根据需要修改输出的方式。
阅读全文