Java中File类的使用(二)
2013-07-29 16:18
148 查看
在上一篇中,我们已经知道了怎么创建目录(文件夹)和文件,接下来我们讨论下怎么向文件中写东西和读东西。
在我们所写的程序中,要与文件相互访问就必须用的流的概念,那么什么是流呢?
流机制是JAVA及C++中的一个重要的机制,通过流能使我们能自由地控制包括文件,内存,IO
设备等等中的数据的流向。
流是一串连续不继的数据的集合,就像水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流。数据写入程序可以是一段一段地向数据流管道中写入数据,这些数据段会按先向顺序形成一个长的数据流。对数据的读取程序来说,看不到数据流在写入时的分段情况,每次可以读取其中的任意长度的数据,但只能先读取前面的数据后,再读取后面的数据。不管写入时是将数据分多次写入,还是作为一个整体一次写入,读取时的效果都是完全一样的。
在Java中流分为输入流和输出流。
下面举一些流的方法:
一.输入流:
1.read(); 读入一个字节并返回,返回类型为int,返回-1表示已读完。
2.read(byte[] b);一次读入尽可能多的字节去填满数组b,填不满用0补,返回实际读到的字节数,-1表示已读完。
3.read(byte[] b,int off,int, len); 一次读入尽可能多的字节去填满字节数组b从off开始的len个空间。
4.close();关闭输入流。
二.输出流:
1.write(); 向文件中写入一个字节的数据。
2.write(byte[] b); 向文件中写入数组b,数组空余的用0来填充。
3.write(byte[] b, int off,int len); 向文件中写入数组b的数据,从off开始长度为len的数据,同样数组len中的空余用0来填补。
4.flush();将内存缓冲区中的数据读入程序/向文件中写入。
5.close(); 关闭输出流。
下面是我写的一个小程序:
总结:在Java中,程序与文件之间靠流来联系,对流进行读写即为对文件的读写,虽然让人不易理解但你可以把流就看做成文件的一种载体,用File()方法给文件赋予流这个载体,程序对留这个载体的读写就是对文件的读写。
本文出自 “努力学习成就梦想” 博客,请务必保留此出处http://zhaoyanming.blog.51cto.com/7609220/1259749
在我们所写的程序中,要与文件相互访问就必须用的流的概念,那么什么是流呢?
流机制是JAVA及C++中的一个重要的机制,通过流能使我们能自由地控制包括文件,内存,IO
设备等等中的数据的流向。
流是一串连续不继的数据的集合,就像水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流。数据写入程序可以是一段一段地向数据流管道中写入数据,这些数据段会按先向顺序形成一个长的数据流。对数据的读取程序来说,看不到数据流在写入时的分段情况,每次可以读取其中的任意长度的数据,但只能先读取前面的数据后,再读取后面的数据。不管写入时是将数据分多次写入,还是作为一个整体一次写入,读取时的效果都是完全一样的。
在Java中流分为输入流和输出流。
下面举一些流的方法:
一.输入流:
1.read(); 读入一个字节并返回,返回类型为int,返回-1表示已读完。
2.read(byte[] b);一次读入尽可能多的字节去填满数组b,填不满用0补,返回实际读到的字节数,-1表示已读完。
3.read(byte[] b,int off,int, len); 一次读入尽可能多的字节去填满字节数组b从off开始的len个空间。
4.close();关闭输入流。
二.输出流:
1.write(); 向文件中写入一个字节的数据。
2.write(byte[] b); 向文件中写入数组b,数组空余的用0来填充。
3.write(byte[] b, int off,int len); 向文件中写入数组b的数据,从off开始长度为len的数据,同样数组len中的空余用0来填补。
4.flush();将内存缓冲区中的数据读入程序/向文件中写入。
5.close(); 关闭输出流。
下面是我写的一个小程序:
package io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class Test006 { public static void main(String[] args) { FileInputStream is = null;//创建输入流引用 FileOutputStream os = null;//创建输出流引用 int i = 0; byte[] arr = new byte[16*1024];//定义一个数组用来存放读入的数据 try { is = new FileInputStream("D:\\a.txt");//给输入流的引用赋予对象,参数为文件的路径 os = new FileOutputStream("D:\\b.txt");//给输出流的引用赋予对象 while((i = is.read(arr))!=-1){ //判断是否读完,没读完继续读,读完关闭输入输出流 // i = is.read(); os.write(arr,0,i);//讲读入的数据写入到输出流中,由输出流写入文件中 } } catch (FileNotFoundException e) {//对输入流的文件找不到的异常处理 e.printStackTrace(); } catch (IOException e) {//对输出流的异常处理 e.printStackTrace(); } finally{ try { is.close();//关闭输入流 os.close();//关闭输出流 } catch (IOException e) {//对无法关闭输入输出流的异常处理 e.printStackTrace(); } } } }注意: 在使用流时,一定要注意异常的处理,在平时练习时可以抛给编译器,但在正式开发中,一定不能抛给编译器(会使程序运行崩溃),一定要一步步处理好。最好自己写异常输出语句,使用户能够清楚的知道为什么程序不执行。
总结:在Java中,程序与文件之间靠流来联系,对流进行读写即为对文件的读写,虽然让人不易理解但你可以把流就看做成文件的一种载体,用File()方法给文件赋予流这个载体,程序对留这个载体的读写就是对文件的读写。
本文出自 “努力学习成就梦想” 博客,请务必保留此出处http://zhaoyanming.blog.51cto.com/7609220/1259749
相关文章推荐
- JAVA基础学习之流的简述及演示案例、用缓冲区方法buffer读写文件、File类对象的使用、Serializable标记接口(6)
- javaday48_IO流_File类的使用,File过滤器,遍历文件目录
- Java基础———重温关于的文件读写操作,File类,FileInputStream类等的使用
- java中File类的使用方法
- java中File类的使用方法
- java语言基础(79)——File类的基础使用java文件操作
- java中File类的使用方法
- java中File类的使用方法
- 使用java File类编写的 猜数小游戏
- 【java】File类的详解使用方法
- java中File类的使用方法
- Java中File类的使用
- Java File类方法使用详解
- Java File类的简单说明与使用 -- Java 基础
- (一)、Java I/O系统——File类的使用
- java中File类的使用方法
- JAVA随笔——File类与热键的使用
- JAVA中File类的使用
- java中File类的使用方法
- java中File类的使用方法