`
felixour
  • 浏览: 32832 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Netjava Lesson14 IO流——管理文件读入写出

阅读更多

2013.08.04

 

上课内容:IO流——管理文件读入写出

 

今天我们要上是IO流,我们回顾一下上节课的内容,上节课我们讲的文件的创建和删除,但是我们对文件的操作肯定不止于此。
这节课我们要讲的是文件的写入与读出,这里我们就要用到输入流:InputStream和输出流:OutputStream.
所谓文件输入流,就是我们从文件中读取到JVM内存的,这里有两个常用的构造方法:
FileInputStream(File file) :传入的是File类对象
FileInputStream(String name) :传入的是字符串类的对象,指的是文件的路径名

 

传入文件后,我们就可以对文件进行读入操作,这里我们常用的是read()方法,读取的是一个字节,返回的int类型。但是我们注意到,byte只有8位,最多也就是127,在有的情况下并不能满足我们的需求,所以我们又是要用到数据输入流:DataInputStream,这里我们可以调用方法readInt()读入一个数字 ,实际上是读取四个字节,然后返回一个int型的。

 

文件输出流,就是我们将我们指定的内容输出到指定的文件中,这里只有一个构造方法:
FileOutputStream(File file)  :对File类对象输出流
FileOutputStream(String name) :传入的是字符串类的对象,指的是文件的路径名

我们定义好输出流对象,接着就要写入文件,同样这里我们要用到数据输出流:DataOutputStream。


运用这个输入流我们一般调用如下几种格式:
writeInt(int v) 以4字节形式写入基础输入流
writeBytes(String s)  将字符串按字节顺序写出到基础输出流中
用完数据输出流,我们要注意调用flush方法来清空此数据输出流。
而其他的IO流,我们都可以调用close方法来关闭他们,然后释放内存空间。

 

知道这些,我们也可以实现文件的拷贝啦!只要我们从一个文件读取到信息,然后再写入另一个文件就好了!

	 /**
	 * 拷贝文件
	 * 
	 * @param file文件对象
	 * @param path要拷贝的路径
	 */
	public void filecopy(File file, String path) {
		if (file.exists()) {
			try {
				File newFile = new File(path);//创建新的文件对象
				InputStream is = new FileInputStream(file);//创建文件输入流
				OutputStream os = new FileOutputStream(newFile);//创建文件输出流
				byte temp;//创建临时字符变量
				//循环,每读一个字符,就写一个字符
				while ((temp = (byte) is.read()) != -1) {
					os.write(temp);
				}
				os.close();//关闭输出流
				is.close();//关闭输入流
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

 

1
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics