黑马程序员技术交流社区
标题:
【技术讨论】java之IO流
[打印本页]
作者:
沿途小将
时间:
2014-8-17 17:25
标题:
【技术讨论】java之IO流
废话少谈,现在就直入我们的java中的io流了。
Java把这些不同来源和目标的数据都统一抽象为数据流。Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。
在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流。(来自百度百科)
java的io 有四个抽象基类。分别是InputStream、OutputStream、Reader、Writer。
我也是新手,所以现在说说我都玩这些基类时,常遇到的问题。
1,一般的类,要使用他的话,就直接实例化之后用就可以了。例如,Scanner s=new Scanner(); 但是这四个基类可不能这样用,需要实力他们各自的非抽象子类才能用。
2,如果说按照我前面的方法来玩那四个基类,发现还是没法用(报错),我只能说声抱歉了,我应该首先说说使用这四个基类的前提。InputStream、OutputStream、Reader、Writer以及他们的子类都是在Java\jdk1.6.0_10\src.zip\java\io ,所以必须先导入要使用的类,一次导入IO的全部类也行。方法是:import java.io.*;
IO流的使用,就意味着异常的出现,为了程序能继续往下执行,就必须对异常进行处理。
有两种处理异常的方法:1,try{}catch(){} 2,直接throws (不建议使用)
我在这里就只说下try{}catch(){} 方法了。如:
import java.io.*;
public class InOutStream{
FileWriter fw=null;
public static void main(String[] args){
try{
fw = new FileWriter("hello.txt");
fw.write("我是要写入hello.txt的内容");
}catch(IOException e){
System.out.println(e.tostring());
}
finally{
try{
if(fw!=null)
fw.close();
}catch(IOException e){
System.out.println(e.tostring());
}
}
}
}
复制代码
这里有一点点建议:
1,为了使例子中的fw能够在try中使用,最好把他放入成员变量的等级,可以先为空,后在try中初始化。
2,建议都要使用到finally,这样程序会更安全一点,并且在finally里关闭流(多个流时,都需要关闭,必能只关闭一个),小细节是,在关闭流时加个判断语句。
笔者不够细心,望多指教!
作者:
占星释
时间:
2014-8-17 17:42
赞一个,
作者:
范靖明
时间:
2014-8-17 17:45
学的真快啊!
作者:
左脑想你
时间:
2014-8-17 18:29
通配符*也不建议使用,尽量用一个导一个,一次导入过多的包,你的代码看起来简介,但是实际上你的代码运行时占用了很多的资源
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2