欢迎技术交流。 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(); } }