English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在此程序中,您将学习使用Java从给定文件的内容创建字符串的不同技术。
从文件创建字符串之前,我们假设在src文件夹中有一个名为test.txt的文件。
这是test.txt的内容
Esto es un Test archivo.
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); } }
Al ejecutar este programa, la salida será:
[This is a, Test file.]
在上面的程序中,我们使用System的user.dir属性来获取存储在变量中的当前目录path。检查Java程序以获取当前目录以获取更多信息。
我们使用defaultCharset()作为文件的编码。如果您知道编码,请使用它,否则使用默认编码是安全的
然后,我们使用readAllLines()方法从文件中读取所有行。它接受文件的路径及其编码,并以列表的形式返回所有行,如输出所示.
因为readAllLines也可能抛出IOException,所以我们必须这样定义main方法
public static void main(String[] args) throws IOException
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); } }
Al ejecutar este programa, la salida será:
Esto es un Test archivo.
En el programa anterior, lo que obtenemos no es una lista de cadenas, sino una cadena que contiene todo el contenido.
Por lo tanto, utilizamos el método readAllBytes() para leer todos los bytes desde la ruta dada. Luego convertimos estos bytes a una cadena utilizando la codificación predeterminada.