Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 677|回复: 0

io--总结

[复制链接]

该用户从未签到

发表于 2011-10-17 10:49:20 | 显示全部楼层 |阅读模式
今天复习了一下io,感觉有了更透彻点的理解
首先总结一下,FileInputStream类和FileOutputStream类
上面的两个类是字节输入流,是按着字节读取数据的。
现在来说一下他们的用法。
他们实现的接口分别是InputStream和OutputStream抽象类
输入流里有两个方法read()和read(byte[] b)我个人感觉第二方法比较常用
举个例子吧

import java.io.*;
public class Input {
static String content = "this is my io practice";
public static void main(String[] args) {
  File file = new File("D:\\Hello.txt");
  try{
   if(file.exists()){
    file.delete();
    System.out.println("文件已删除");
   }else{
    file.createNewFile();
    System.out.println("文件已创建");
   }
  }catch(Exception e){
   e.printStackTrace();
  }
  try{
   FileOutputStream out = new FileOutputStream("file");
   byte[] b =  content.getBytes();
   out.write(b);
   out.close();
  }catch(Exception e){
   e.printStackTrace();
  }
  try{
   FileInputStream input = new FileInputStream("file");
   byte[] b = new byte[100];
   int len = input.read(b);
   System.out.println("文件中的信息是:"+new String(b,0,len));
  }catch(Exception e){
   e.printStackTrace();
  }
}

}
我们来分析一下这段代码。首先是要创建目标文件,也就是要输入或输出的数据文件。通过创建File类的实例。这里就不多做总结了。主要看输入输出的过程。
应为该过程可能会抛出异常,所以将输入输出的代码放在try catch语句内。先实例化一个FileOutputStream类的对象,通过这个对象我们可以向目标文件输入我们想要保存的内容。再类里面我首先声明并初始化了一个String变量 content。应该在前面加上static,因为在静态方法内是不可以调用和使用非静态的变量和方法的。
FileOutputStream是一个字节流输出类,所以我们需要将content这个字符串变量转换成一个字节型的变量--字节数组。这个可以通过String类的getBytes()方法。
将这个字符串常量转换成字节数组后,就可以对该数据进行操作了。通过FileOutputStream类的write(byte[] b)就可以将这个字节数组里面的内容写入到file文件中了。

现在来看,是怎么样将数据文件的内容输入到控制台的。FileInputStream这个类的对象可以做到。和FileOnputStream的过程相似。略有不同,首先都是要实例化一个对象,这个类的对象调用read(byte[] b)方法来读取内容。我们可以看到这个方法里面的参数也是一个字节数组。意思就是将数据输入到一个字节数组内。所以我们要在此之前创建一个字节数组。然后通过System.out.println()语句输出数据到控制台。在输出语句里面要用到String类的一个构造方法。new String(byte[] b,int star, int off);
这个方法的作用是输出一个字节数组内的从star位置到off之间的内容。

还有FileReader和FileWriter
BufferedReader BufferedWriter
BufferedInputReader BufferedOutputReader

他们都是特别类似的,只要明白了一种,其他的一看就全都明白了。

很简单吧,其实思路清晰了,静下心来看看,你就会觉得原来是如此简单。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-10 14:56 , Processed in 0.297187 second(s), 36 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表