您的位置:首页 > 编程语言 > Java开发

java io 笔记二:FileOutPutStream、FileInPutStream、FileWriter、FileReader类

2011-04-28 18:24 417 查看
欢迎技术交流。 QQ:138986722

FileOutPutStream 和FileInPutStream:

package iotest;

import java.io.*;

public class StreamTest {

	/**
	 * 流的概念:
	 *	1、流是字节顺序的抽象概念。
	 *	2、文件是数据的静态存储形式、而流事是指数据传输时的形态。
	 *	3、流类分为两个大类:节点流和过滤流类(也叫处理流类)。

	 *	InputStream类:
	 *	程序可以从中连续读取字节的对象叫输入流,在java中,用InputStream类来描述所有输入流的抽象概念。

	 *	OutPutStream类:
	 *	程序可以向其中连续写入字节的对象叫输出流,在java中,用OutPutStream类来描述所有输出流的抽象概念。

	 *	FuleInputStream和FileOutPutStream类分别用来创建磁盘文件的输入流个输出流对象、通过他们的构造函数来指点文件路径文件名。

	 *	创建FuleInputStream实例对象时,指定的文件应该是存在和可读的,创建FileOutPutStream实例对象时,如果指定的文件已经存在,这个文件中的原来内容将被覆盖清楚。

	 *	对同一个磁盘文件创建FuleIntputStream对象的两种方式:
	 *	(1)、FileInPutStream inOne = new FileInPutStream("hello.test");
	 *	(2)、File f = new ("hello.test");
     *       FileInPutStream inTwo = new FileInPutStream(f);
	 
	 *	创建FileOutPutStream实例对象时,可以指定还不存在的文件名,不能指定一个已被其他程序打开了的文件。
	
	
	 * 例题:用FileOutPutStream类向文件中写入一个字符串,然后用FileInPutStream读出写入的内容
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		
		/* FileOutputStream类:文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。
		 * 
		 * 
		 * FileOutputStream(String name)构造:创建一个向具有指定名称的文件中写入数据的输出文件流。
		 * 
		 */
		FileOutputStream fout = new FileOutputStream("hzw//hello.txt");
		
		
		/*
		 * Writer方法: b.length 个字节从指定 byte 数组写入此文件输出流中。
		 * 
		 * String.getBytes()方法用于将字符串转换为字节数组
		 */
		fout.write("www.hzw.com".getBytes());
		
		
		//关闭流
		fout.close();
		
		
		/*
		 * 创建一个file对象: 文件和目录路径名的抽象表示形式。
		 * 
		 * File(String name)构造:通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
		 */
		File f = new File("hzw//hello.txt");
		
		/*
		 * FileInputStream类:用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。
		 * 
		 * FileInputStream(File file)构造:通过打开一个到实际文件的连接来创建一个 FileInputStream,
		 *                                 该文件通过文件系统中的 File 对象 file 指定。
		 */
		FileInputStream input = new FileInputStream(f);
		
		/*
		 * 创建一个byte(字节)类型数组
		 */
		byte[] by = new byte[1024];
		
		/*
		 * read方法:从此输入流中读取一个数据字节。
		 * 
		 * read(byte[] b)方法:从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
		 * 
		 * 返回:读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。
		 */
		int len = input.read(by);
		
		
		/*
		 * String(by,0,len)构造: 用于将by数组转换成字符串——从0开始到len(Int变量值)结束
		 */
		System.out.println(new String(by,0,len));
		
		//关闭流
		input.close();
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	}

}




FileWriter、FileReader类:

package iotest;

import java.io.*;
public class IoStringTest {

	/**
	 * java 中专门有两个类分别对字符串进行输入跟输出处理。Reader、Writer类
	 * 
	 * 使用FileWriter类向文件中写入一个字符串,然后用FileReader类读出写入的内容
	 * 
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		/*
		 * FileWriter(继承OutputStreamWriter类 ):用来写入字符文件的便捷类。
		 * 
		 * FileWriter(String name):根据给定的文件名构造一个 FileWriter 对象。
		 */
		FileWriter wr = new FileWriter("hzw//tiantian.txt");
		
		/*
		 * write:继承OutputStreamWriter类 write方法——的写入字符串。
		 */
		wr.write("何祖文");
		
		//有兴趣的可以把这句代码删掉试试!!!
		wr.close();
		
		char[] ch = new char[1024];
		
		/*
		 * FileReader(继承InputStreamReader类):用来读取字符文件的便捷类。
		 * 
		 * FileReader(String fileName):在给定从中读取数据的文件名的情况下创建一个新 FileReader。
		 */
		FileReader re = new FileReader("hzw//tiantian.txt");
		
		/*
		 * read:继承InputStreamReader类的read方法——试图将字符读入指定的字符缓冲区。
		 * 
		 * 返回:添加到缓冲区的字符数量,如果此字符源位于缓冲区末端,则返回 -1 
		 */
		int len = re.read(ch);
		System.out.println(new String(ch,0,len));
		re.close();
	}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: