程序的输入与输出
我们先来认识一下什么时在程序中输入与输出
输入是从外界到程序中的方向,是我们程序用于获取外界信息的过程,是"读"的过程
输出是从程序到外界的方法,是我们程序向外界发送信息的过程,是"写"的过程
java.io.InputStream与OutputStream
输入流与输出流
这里的流相当于是程序与外界相连的一根管道,用于传输数据.而数据就是字节(2进制)
InputStream和OutputStream是两个超类,抽象类. java中实际用于读写数据的流都继承自他们.
文件流
java.io.FileInputStream和FileOutputStream 这两个流就继承自InputStream和OutputStream 这两个流是用于连接我们程序和文件之间的管道,读写文件数据(读写硬盘)的目录要存在
输出OutputStream
FileOutputStream是用于连接程序与程序的管道,负责将程序的数据发送到文件中 常用的构造方法: FileOutputStream(File file) FileOutputStream(String path) 注:如果指定的文件不存在,文件流会自动创建它.前提是该文件所在目录要存在
FileOutputStream fos = new FileOutputStream("./fos.dat");
/*
OutputStream上定义的方法:
void write(int d)
通过当前输出流向目标位置写出1个字节,写出给定int值对应2进制的"低八位"
fos.write(1);
1个int值4个字节,32位2进制
00000000 00000000 00000000 00000001
^^^^^^^^
实际写出的数据
fos.dat文件中:
00000001
---------------------------------------------
fos.write(2);
1个int值4个字节,32位2进制
00000000 00000000 00000000 00000010
^^^^^^^^
实际写出的数据
fos.dat文件中:
00000001 00000010
*/
fos.write(1);
fos.write(2);
System.out.println("写出完毕");
fos.close();//流使用完毕后要关闭
输入InputStream
使用文件输入流从文件中读取字节数据
InputStream的超类中定义了读取一个字节的方法int read()
通过流读取1个字节到程序中,返回的int值对应的2进制"低八位"有效.
如果返回的int值直接表示整数-1,则表示流读取到了末尾EOF EOF:end of file
FileInputStream fis = new FileInputStream("./fos.dat");
fos.dat内容:
00000001 00000010
---------------------------------------------------------------------
第一次调用:
int d = fis.read()
fos.dat内容:
00000001 00000010
^^^^^^^^
读取的字节
读取后变量d的2进制样子:
00000000 00000000 00000000 00000001
|---------补充24个0-------| ^^^^^^^^
读取到的数据
*/
int d = fis.read();
System.out.println(d);//1
/*
第二次调用:
d = fis.read()
fos.dat内容:
00000001 00000010
^^^^^^^^
读取的字节
读取后变量d的2进制样子:
00000000 00000000 00000000 00000010
|---------补充24个0-------| ^^^^^^^^
读取到的数据
*/
d = fis.read();
System.out.println(d);//2
/*
第三次调用:
d = fis.read()
fos.dat内容:
00000001 00000010
^^^^^^^^
文件末尾
读取后变量d的2进制样子:
11111111 11111111 11111111 11111111
|------------补充32个1-------------|
*/
d = fis.read();//-1
System.out.println(d);
System.out.println("读取完毕");
fis.close();
标签:Java,读取,fos,00000000,00000001,dat,int,API,io From: https://blog.csdn.net/qishuang6/article/details/141536810