# Java 程序：从文件内容创建字符串

> 原文： [https://www.programiz.com/java-programming/examples/string-from-file](https://www.programiz.com/java-programming/examples/string-from-file)

#### 在此程序中，您将学习使用 Java 从给定文件的内容创建字符串的不同技术。

从文件创建字符串之前，我们假设在`src`文件夹中有一个名为`test.txt`的文件。

这是`test.txt`的内容

```java
This is a
Test file.
```

## 示例 1：从文件创建字符串

```java
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class FileString {

    public static void main(String[] args) throws IOException {

        String path = System.getProperty("user.dir") + "\\src\\test.txt";
        Charset encoding = Charset.defaultCharset();

        List<String> lines = Files.readAllLines(Paths.get(path), encoding);
        System.out.println(lines);
    }
}
```

运行该程序时，输出为：

```java
[This is a, Test file.]
```

在上面的程序中，我们使用`System`的`user.dir`属性获取存储在变量`path`中的当前目录。 检查 [Java 程序：获取当前目录](/java-programming/examples/current-working-directory "Java Program to get the current directory")，以获取更多信息。

我们使用`defaultCharset()`作为文件的编码。 如果知道编码，请使用它，否则使用默认编码是安全的。

然后，我们使用`readAllLines()`方法从文件中读取所有行。 它采用文件的`path`及其`encoding`，并将所有行作为列表返回，如输出所示。

由于`readAllLines`也可能会引发`IOException`，因此我们必须这样定义`main`方法

```java
public static void main(String[] args) throws IOException
```

* * *

## 示例 2：从文件创建字符串

```java
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;

public class FileString {

    public static void main(String[] args) throws IOException {

        String path = System.getProperty("user.dir") + "\\src\\test.txt";
        Charset encoding = Charset.defaultCharset();

        byte[] encoded = Files.readAllBytes(Paths.get(path));
        String lines = new String(encoded, encoding);
        System.out.println(lines);
    }
}
```

运行该程序时，输出为：

```java
This is a
Test file.
```

在上述程序中，我们没有获得字符串列表，而是获得了一个包含所有内容的字符串`row`。

为此，我们使用`readAllBytes()`方法从给定路径读取所有字节。 然后，使用默认的`encoding`将这些字节转换为字符串。