在Java中,流(Stream)主要可以分为两大类: 字节流和 字符流。
字节流
输入流:`InputStream`
输出流:`OutputStream`
具体实现类包括:
文件字节流:`FileInputStream`, `FileOutputStream`
缓冲字节流:`BufferedInputStream`, `BufferedOutputStream`
字符流
输入流:`Reader`
输出流:`Writer`
具体实现类包括:
文件字符流:`FileReader`, `FileWriter`
缓冲字符流:`BufferedReader`, `BufferedWriter`
此外,流还可以根据其他标准进一步分类,例如:
节点流:直接从数据源读取或写入数据的流,如 `FileReader`, `FileWriter`。
处理流(也称为 包装流或 过滤流):在节点流的基础上增加了一些功能,如缓冲、转换等,如 `BufferedInputStream`, `BufferedWriter`。
对象流:可以读取或写入Java对象的流,如 `ObjectInputStream`, `ObjectOutputStream`。
这些分类和具体实现类共同构成了Java I/O流体系,使得开发者能够灵活地处理各种数据源和目标,以及进行各种复杂的I/O操作。
建议在实际编程中,根据具体需求选择合适的流类型,以便高效、准确地进行数据处理。