class="p0">文件的输入输出流是编程语言中很重要的一个应用。
文件流指的就是计算机中用于传输数据的通道,在Java.io包中,有Inputstream和Outputstream两个类,这两个类是说有字节输入输出流操作的父类。利用这两个类可以对输入输出流进行一系列的操作。
OutputStream这个类决定了输出所要去往的目标,目标包括字节数组、文件或管道。该类包含了以下方法:
close()?=>关闭此输出流并释放与此流相关的所有系统资源
flush()?=>刷新此输出流并强制写出所有缓冲的输出字节,强制将数据传输通道中的数据输出到目标,因为将数据输出到硬盘文件时内存的发送速度远高于硬盘接收速度,在传输通道中有数据的留存,需要使用此方法强制将通道中的数据推出
write(byte[]?b)?=>此方法实现了将数组b[]中的数据以字节的形式写入到输出流中
write(byte[]?b,int?off,int?len)?=>此方法实现将数组b[]从off到len处的数据截取并写入到输出流中
以下是对部分方法的使用:
?
try { //根据文件对象建立文件输出流 //建立管道流的时候自动检测是否存在该文件是否存在 //FileOutputStream fos = new FileOutputStream(f); //参数1 =>要写入数据的文件路径 //参数2 =>是否将数据追加到文件末尾 FileOutputStream fos = new FileOutputStream(f,true); //得到要输出的字符串的字节数组 byte[] bs = str.getBytes(); //增强for循环 for (byte b:bs) { //写出字节 fos.write(b); } //强制将管道中的数据输出到目标 //因为内存的发送速度远高于硬盘接收速度,需要强制将管道中的数据推出 fos.flush(); //关闭输出流 fos.close(); } catch (Exception e) { e.printStackTrace(); }
(关于其中的异常,这里暂时不做说明)
?
(其实我还没有学,不知道)
而在使用输出流时,输出流在文件不存在时会自动创建文件,在文件已经存在的情况下,可以选择是否将数据追加到源文件末尾
<!--EndFragment-->
InputStream类的作用是用来表示那些从不同数据源产生输入的类,这些数据源包括了字节数组、String对象、文件、数据传输管道等,其中包含了以下方法:
available()?=>此方法获得流中所含的字节数,返回一个int类型的值,这个值即为该流所含的字节数
read()?=>此方法从流中以单个字节的形式读取字节,返回值得范围在0—255之间,这个值就是当前读取的字节数据。
?
int i = 0; int b = fin.read(); while(b != -1) { bs[i] = (byte)b; b = fin.read(); }
mark()?=>此方法标记当前字节的位置
<!--EndFragment-->
<!--EndFragment-->