之前是学习到了有关文件的操作,主要是对文件进行创建删除查找搜索等等。~现在就可以对文件进行一些简单的操作了。比如读和写~
这里所说的IO流就是对应的InputStream和OutputStream。分别是字节输入流和字节输出流。我觉得这里有一处容易混淆的是呢InputStream字节输入流可能我们在字面理解输入就是往文件里输入么?但。。恰恰相反。这里的流的源头是文件,所以输入是从文件往外,而OutputStream输出流才是向文件方向的。。刚开始接触感觉好容易弄混的。多多练习敲敲代码就ok啦。
下面总结一下这个IO流的简单的使用:
- <SPAN style="FONT-SIZE: medium">public static void copyFile(){
- try {
- //实例化一个InputStream对象
- InputStream is = new FileInputStream("src/IOStream.java");
- //实例化一个数组,长度为文件的长度
- byte array[] = new byte[is.available()];
- //进行read操作,并将结果存入array数组中
- is.read(array);
- //实例化一个OutputStream对象
- OutputStream os = new FileOutputStream("src/IOFileTest.txt");
- os.write(array);
- System.out.println("文件拷贝成功");
- is.close();
- os.close();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }</SPAN>
public static void copyFile(){ try { //实例化一个InputStream对象 InputStream is = new FileInputStream("src/IOStream.java"); //实例化一个数组,长度为文件的长度 byte array[] = new byte[is.available()]; //进行read操作,并将结果存入array数组中 is.read(array); //实例化一个OutputStream对象 OutputStream os = new FileOutputStream("src/IOFileTest.txt"); os.write(array); System.out.println("文件拷贝成功"); is.close(); os.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
上面一段代码就是对InputStream和OutputStream的一个简单的操作,功能相当于文件的拷贝。
感觉有几个需要注意的地方。首先~~查看API就会知道我们使用的InputStream和OutputStream都是抽象类,Abstract Class。因为抽象类无法实例化,所以我们是通过FileInputStream和FleOutputStream这两个子类来进行实例化的。还有就是进行读写的时候,也可以采用另一种方法,就是一个字节一个字节的读和写~~那样的话,代码会比这种的多~~所以木有采用。
其他都很简单的,执行这一段代码之后的效果就是在src下面又生成了一个Txt文件,内容就是与这段代码相同的~~
转载于:https://blog.51cto.com/shuaigee/1140107