IO流:InputStream/OutputStream
字节流:
文件输出流 :内存 ——>文件
文件输入流 :内存<——文件
应用 文件输入/出流 文件 字节输入/出流:ByteInputStream
InputStream/OutStream都是抽象的父类
文件输入流:FileInputStream 从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。
FileInputStream
用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader
。
package 字节流; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream; public class Demo01 { public static void main(String args[]){
try {
InputStream is = new FileInputStream("D:/lala.txt");
while(true){
int data = is.read(); if(data == -1){
break;
}
System.out.print((char)data);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
read()每次读入一个字节,若在末尾无字节时返回值 -1.
文件输出流:文件输出流是用于将数据写入 File
或 FileDescriptor
的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。
注意:输入流与输出流是站在应用的角度来看的输入与输出。如果管子的流向是应用,则为输入流;若流向是文件,则为输出流。
字符与字节的区别:
字符是计算机中使用的文字和符号,如1,2,3,a,b,¥,—,“中”等。
字节是计算机用于计量存储容量的计量单位,表示数据量的多少。可以计算要给变量分配多大的内存空间,比如char型占用2个字节的内存空间,int型占4个字节。
java中,Byte型是最小的数据类型。char型会被分配两个字节的存储空间。一个char型的字母占用1个字节空间,一个char型的汉字刚好占用两个字节空间。如果是多个汉字则可定义为String型。