我真的不知道,为什么这对于读取包含很多类的文件来说是如此复杂和困难
以下有什么优点?那里的哲学是什么?
private static String fileToString(String filename) throws IOException
{
InputStream resourceAsStream;
resourceAsStream = "".getClass().getResourceAsStream(filename);
DataInputStream in = new DataInputStream(resourceAsStream);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder builder = new StringBuilder();
String line;
// For every line in the file, append it to the string builder
while((line = reader.readLine()) != null)
{
builder.append(line);
}
return builder.toString();
}
Run Code Online (Sandbox Code Playgroud)
如果你想读一个你有路径的文件,你甚至可以这样做:
List<String> lines = Files.readAllLines(Paths.get("/path/to/your/file"), charset);
Run Code Online (Sandbox Code Playgroud)
注意:需要Java 7+
理念是灵活性.使用不同类型的数据流,您可以轻松地读取和写入不同类型的数据,如字节,文本行或整个用户定义的对象,一次一个地输入和输出I/O源.
I/O流表示输入源或输出目标.流可以表示许多不同类型的源和目标,包括磁盘文件,设备,其他程序和内存阵列.
Streams支持许多不同类型的数据,包括简单字节,原始数据类型,本地化字符和对象.有些流只传递数据; 其他人以有用的方式操纵和转换数据.
从课程轨迹课程:基本I/O开始,以便更好地了解Java I/O.
如果您想查看如何简化Java中各种数据类型的I/O的具体示例,我建议您查看Sedgewick和Wayne 标准库中的In.java和Out.java类.
| 归档时间: |
|
| 查看次数: |
1266 次 |
| 最近记录: |