`
CSU.pursuer
  • 浏览: 6788 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

浅谈File和IO流

    博客分类:
  • java
阅读更多

浅谈FileIO

当我们想用java语言将我们写的程序和电脑上的文件联系起来的时候,我们会用到FileIO流。

File类可以帮助我们处理文件目录的问题,在这里,File除了代指某个文件的名称,还可以指一个目录一下一组文件的名称。其中可以利用File.listRoots()方法返回电脑上的每个逻辑驱动,也就是根目录。然后我们可以利用方法File类的方法——getAbsolutePath()得到文件的路径。除了这些方法外,我们可以用isFile()来判断File对象指向的文件是不是一个文件,利用isDirectory()判断File对象指向的文件是不是一个目录,可以用createNewFile()创建一个新的文件。可以用delete()方法来删除一个文件。。。。。。其中各种用法详见API

一句话来说,File类让我们可以通过代码来操控文件。

有了对文件的操作,我们可以实现文件之间的互动,也就是可以通过程序来读写文件的内容,这时候我们就需要IO流。

流按照性质分可以分为以下四种:

1:基础字节流:这种流直接连接到数据源,可以按照最小数据单位读取源文件(也就是一个字节一个字节)。

2:过滤流:这种流不直接连接到数据源,而是用来包装基础流来提供更好的特性,以其他流对象为参数。

3:基于具体数据类型的流:要从二进制流中读取在制定数据类型(intlong)型的数值,要用这种流。如DataInputStream。。。

4:基于对象读写:这个据说很强大,是关于对象序列化的技术,留作以后学习。。。

假如我们要将路径为E:\\小说\\武侠小说\\金庸全集\\射雕英雄传.txt

复制到我们的工作当前编写类的src中:我们可以这样:

String path="E:\\小说\\武侠小说\\金庸全集\\射雕英雄传.txt";

String newPaht="src\\IOTest2\\射雕英雄传.txt";

InputStream is=new FileInputStream(path);

如果我们利用缓冲流,可以使文件传输的更快,缓冲流与字节流的区别就好比字节流是对每一个商品都打包一次然后运送,而缓冲流是对N多商品打包一次然后运送,在要被运送的商品数量相同的情况下。。。快的肯定是缓冲流。。。两种方法相差大约10倍。

BufferedInputStream bi= new BufferedInPutStream(is);

然后我们输出

OutputStream os= new FileOutputStream(newpath);

BufferedOutputStream bos= new BufferedOutputStream(os);

再然后我们利用具体的读写方法read()和write()分别读写其中的的内容就完成咯。

其中读文件的时候byte [] bb=new byte[is.available()];

int i=-1;

int count=0;

While((i=is.read())!=-1){

bb[i]=(byte)i;

count++;

}可以每次读一个字节

也可以这样

is.read(bb);

完成了读写之后,我们还要注意流的关闭这个问题,就像节约用水一样,我们对流的控制最好是做到随用随关,否则可能造成文件没有读取完全的问题关闭流用相应的close()方法即可。

以上就是一些关于File和IO流的简单介绍。。。欢迎大家围观。。。

<!--EndFragment-->
分享到:
评论
2 楼 CSU.pursuer 2012-07-16  
我的可是纯手写汉字文本啊 熊哥会体谅我的。。。
1 楼 GLC 2012-07-16  
孩子、、、这样偷懒???

相关推荐

Global site tag (gtag.js) - Google Analytics