本帖最后由 皮卫凯 于 2012-9-17 21:33 编辑
import java.io.*;
public class FileInpTest
{ public static void main(String[] args) throws Exception
{ FileOutputStream fos=new FileOutputStream("ceshi.txt"); //1
fos.write("hello world".getBytes());//2
FileInputStream fis=new FileInputStream("ceshi.txt");//3
byte[] bf=new byte[1024];
int len=0; len=fis.read(bf);//4
System.out.println(new String(bf,0,len));
fis.close();
fos.close();
}
}
这一段代码 第1句 创建一个文件输出流对象 fos并指向ceshi.txt
第2句 fos.write() 这句话该怎么理解呢?是将 "hello world".getBytes() 写入到文件还是写入到fos这个输出流对象?
第3句 创建一个文件输入流对象 fis并指向ceshi.txt
第4句 fis.read(bf) 读入到bf数组中 请大侠帮忙回答上面问题!
上面的代码是一个例子,下面的问题则是自己初学java io部分一直搞不懂的共性问题:
问题1: 所谓的输入输出流对象 到底是该理解成为一个类似运动的传送带(传送数据)还是一个节点(静止的)?
举个例子: fileinputstream中的read(byte[] b) 方法 api中是这样表述的: read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个字节数组中。 将字节数据读入到一个字节数组中 这点可以理解 FileOutputStream中的write(byte[] b) 方法如下: write(byte[] b) 将 b.length 个字节从指定字节数组写入此文件输出流中。 这里将字节数据写入到输出流?怎么理解?写入到输出流就是写入到目的地了吗 ? 不好意思 我尽可能地表达清楚我的疑问 还是怕大家看不明白....
问题2 输入输出流的类中 最基本的有4个 分别是字节和字符的输入和输出 而后面的bufferreader类通常叫做包装类 请问这是个什么概念?
|