Java输入流是一种用于从源读取数据的流,它可以从文件、字节数组、字符串或其他输入源中读取数据。Java中的输入流是一种面向流的I/O API,它使开发人员能够从应用程序中读取数据。
Java输入流有很多不同的子类,它们都是java.io包中的InputStream和Reader的子类。InputStream是一个抽象基类,它用于读取原始字节流。Reader是一个抽象基类,它用于读取字符流。
InputStream有很多不同的子类,如FileInputStream、ByteArrayInputStream、ObjectInputStream、PipedInputStream和BufferedInputStream。FileInputStream用于从文件中读取原始字节流;ByteArrayInputStream用于从字节数组中读取原始字节流;ObjectInputStream用于将对象写入到文件或者内存中;PipedInputStream用于在两个独立进程之间传递数据;BufferedInputStream用于将原始字节流包装成带有内部缓冲区的高性能I/O流。
Reader也有很多不同的子类,如FileReader、StringReader、CharArrayReader和BufferedReader。FileReader用于从文件中读取字符流;StringReader用于将String对象作为一个特殊的文本来源来读取字符流;CharArrayReader用于将char数组作为一个特殊的文本来源来读取字符流;BufferedReader用于将原始字符流包装成带有内部行阅读器的高性能I/O流。
// 使用 FileInputSteam 读取文件数据 try { File file = new File("test.txt"); FileInputStream fis = new FileInputStream(file); int data; while ((data = fis.read()) != -1) { System.out.print((char) data); } fis.close(); } catch (IOException e) { e.printStackTrace(); }
PushbackInputStream向输入流添加功能,允许我们使用其unread()方法推回读取的字节。
有三个版本的unread()方法。一个让我们推回一个字节,另外两个让我们推回多个字节。
import java.io.FileInputStream; import java.io.PushbackInputStream; public class Main { public static void main(String[] args) { String srcFile = "test.txt"; try (PushbackInputStream pis = new PushbackInputStream(new FileInputStream( srcFile))) { byte byteData; while ((byteData = (byte) pis.read()) != -1) { System.out.print((char) byteData); pis.unread(byteData); // Reread the byte we unread byteData = (byte) pis.read(); System.out.print((char) byteData); } } catch (Exception e2) { e2.printStackTrace(); } } }
上面的代码生成以下结果。
Java流 -Java流匹配Streams API支持对流元素执行不同类型的匹配操作。Stream接口中的以下方法用于执行匹配操作:boolean allMatch...
JavaFX教程 -JavaFX颜色选择器颜色选择器控件使用户能够从可用范围中选择颜色,或通过指定RGB或HSB组合设置附加颜色。JavaFX Col...
JavaFX教程 -JavaFX分隔符Separator类表示水平或垂直分隔线。它分割元素,不产生任何动作。我们可以设计风格,应用视觉效果,并...
JavaFX教程 -JavaFX列表视图ListView类允许我们显示一个可滚动的项目列表。创建列表视图以下代码创建了一个ListView并在之后填充...
JavaFX教程 -JavaFX条形图条形图是具有可以是垂直或水平的矩形条的双轴图表。import javafx.application.Application;import jav...