📅  最后修改于: 2023-12-03 15:16:01.876000             🧑  作者: Mango
在Java中,我们可以使用很多不同的方法来读取文件并将其存储为字符串。以下是一些常用的方法:
StringBuilder contentBuilder = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader("filename.txt"))) {
String line;
while ((line = br.readLine()) != null) {
contentBuilder.append(line).append("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
String content = contentBuilder.toString();
在这个例子中,我们首先创建一个StringBuilder实例来保存文件内容,然后使用Java 7的try-with-resources语法来确保我们在完成文件读取后关闭BufferedReader。我们使用readLine()方法来逐行读取文件内容并将其附加到StringBuilder实例中。
String content = new Scanner(new File("filename.txt")).useDelimiter("\\Z").next();
上述代码片段使用Scanner类来读取文件内容并使用“\Z”作为分隔符。在正则表达式中,\Z表示输入的结尾。因此,这段代码将读取整个文件并将其作为字符串返回。
String content = new String(Files.readAllBytes(Paths.get("filename.txt")));
上述代码片段利用Java 7中的Files类来读取整个文件并将其转换为字符串。该代码使用路径字符串作为参数,并使用静态Paths.get方法将其转换为Path对象。Files.readAllBytes方法返回文件的所有字节并将其转换为字符串。
ByteArrayOutputStream result = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
try (InputStream inputStream = new FileInputStream(new File("filename.txt"))) {
while ((length = inputStream.read(buffer)) != -1) {
result.write(buffer, 0, length);
}
} catch (IOException e) {
e.printStackTrace();
}
String content = result.toString(StandardCharsets.UTF_8);
上述代码利用Java的InputStream和ByteArrayOutputStream类来读取文件内容并将其转换为字符串。我们使用FileInputStream来获取文件的输入流,然后使用BufferedInputStream的read方法从流中读取数据并将其附加到ByteArrayOutputStream中。最后,我们使用toString方法将字节转换为字符串。
虽然Java 7 中引入的新特性可以让文件读取变得更加方便,但是使用传统的Java IO类也是完全可行的。在读取文件时,请对异常进行适当的处理和捕捉。