Java文件流读取文件是一种常用的文件读取方式,它可以让我们更加方便地读取文件中的内容。
Java中有两种常用的文件流,分别是输入流和输出流。输入流用于读取文件中的数据,而输出流则用于将数据写入文件中。要使用这两种流,首先需要使用FileInputStream和FileOutputStream来创建一个文件流对象。
FileInputStream fis = new FileInputStream("test.txt"); // 创建一个文件输入流对象 FileOutputStream fos = new FileOutputStream("test.txt"); // 创建一个文件输出流对象
然后,我们就可以使用这两个对象来读取或写入文件中的数据了。如果要读取文本数据,我们还需要使用BufferedReader来包装一下FileInputStream:
BufferedReader br = new BufferedReader(new InputStreamReader(fis)); // 创建一个BufferedReader对象来包装FileInputStream对象 String line; // 用于保存当前行的内容 while ((line = br.readLine()) != null) { // 读取当前行的内容并保存在line中 System.out.println(line); // 打印当前行的内容 } br.close(); // 关闭BufferedReader对象
如果要将数据写入到文本中,我们也需要使用BufferedWriter来包装一下FileOutputStream:
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos)); // 创建一个BufferedWriter对象来包装FileOutputStream对象 bw.write("Hello World!"); // 向文本中写入“Hello World!” bw.close(); // 关闭BufferedWriter对象
通过上面的步骤,我们就能够很方便地使用Java的文件流来读取或者写入文本数据了。
此外,Java还提供了很多种不同类型的流来处理不同格式的数据,例如ObjectInputStream、DataInputStream、ZipInputStream等等。通过使用不同种类的流,我们就能够很轻松地处理不同格式的数据。
<来自Java 8的java.io和java.nio.file包添加了许多方法来支持使用流的I/O操作。
我们可以从文件中读取文本作为字符串流。流中的每个元素表示一行文本。
我们还可以使用流从JarFile读取JarEntry,我们可以读取目录中的条目作为Path流。
调用stream上的close()方法将关闭底层文件。
或者,我们可以在try-with-resources语句中创建流,以便自动关闭底层文件。
以下代码显示如何使用流读取文件的内容。
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.stream.Stream; public class Main { public static void main(String[] args) { Path path = Paths.get("./Main.java"); try (Stream<String> lines = Files.lines(path)) { lines.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } }
上面的代码生成以下结果。
以下代码显示如何使用流读取路径。
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.stream.Stream; public class Main { public static void main(String[] args) { Path dir = Paths.get("."); System.out.printf("%nThe file tree for %s%n", dir.toAbsolutePath()); try (Stream<Path> fileTree = Files.walk(dir)) { fileTree.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } }
上面的代码生成以下结果。
Java IO教程 - Java打印流PrintStream类是输出流的具体装饰器。PrintStream可以以合适的格式打印任何数据类型值,基本或对象。Pr...
Java IO教程 -Java路径操作比较路径我们可以基于它们的文本表示来比较两个Path对象的相等性。equals()方法通过比较它们的字符串...
Java流 -Java并行流流可以是顺序的或并行的。顺序流上的操作由一个线程串行处理。使用多个线程并行处理并行流上的操作。默认情况...
JavaFX教程 -JavaFX树表视图JavaFX TreeTableView在表列中渲染数据的层次结构。TreeTableView组件组合了TreeView和TableView控件...
JavaFX教程 -JavaFX散点图散点图是一个双轴图表,将其数据作为一组点显示。每个点由X和Y值定义。import javafx.application.Appl...