java中的I/O流
2015-08-02 19:57
543 查看
java中定义的处理输入输出的类都存放在java.io的包中。其中所有的输入流都是抽象类InputStream或者抽象类Reader的子类;所有的输出流都是抽象类OutputSteam或者抽象类Writer的子类。
下面举一下例子来说明一下:
File类
首先在认识java输入输出刘之前应该先认识一下File类,文件类有四个构造器,一般采用第二个构造器来构造。下面举一下例子来说明一下:
public class Test { public static void main(String[] args) { //创建一个文件,采用构造器2,通过路径名来指定文件对象。 File file = new File("D:\\11.txt");//创建文件 //判断文件是否存在,如果文件不存在则创建一个文件。 if(file.exists()){ try { //创建文件 file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } //删除文件。 file.delete(); } }
InputStream类
InputStream是字节输入流,输入以字节为单位。FileInputStream继承该类。FileOutputStream类,是文件字节输入流。public class Test { public static void main(String[] args) { //读文件 //创建读取字节存储的字节数组。 byte[] arr = new byte[1024]; try { //创建文件输入流,读取源文件 FileInputStream fis = new FileInputStream(file); //读取文件内容 int num = fis.read(arr); while(num != -1){ //将文件内容装换成字符串输出 System.out.println(new String(arr, 0, num)); //释放与该流文件的关联的系统资源 num = fis.read(arr); } fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Reader类
Reader类并不是InputStream类的替代者,它只是在读取数据的方面简化了方法。Reader类读取数据以字符为单位,InputStreamReader类,BufferedReader类继承Reader类。public class Test{ public static void main(String[] args) { File file = new File("D:\\11.txt"); //读入 try { //创建输入流读字节 FileInputStream fis = new FileInputStream(file); //创建输入流读字符 InputStreamReader is = new InputStreamReader(fis); //创建缓冲输入流读行 BufferedReader br = new BufferedReader(is); //读一整行,赋值给字符串 String s= br.readLine(); while(s!=null){ System.out.println(s); s= br.readLine(); } //释放资源 fis.close(); is.close(); br.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
OutputStream类
OutputStream是字节输出流,输出以字节为单位。FileOutputStream继承该类。FileOutputStream类,是文件字节输出流。public class Test { public static void main(String[] args) { //写文件。 String words = "往文件中写东西啦!";//定义往文件中输入的东西。 byte[] array = words.getBytes();//将字符创转换成字节数组。 try { //创建文件输入流对象,指向目的地 FileOutputStream fos = new FileOutputStream(file); //将字节数组写到到文件中。 fos.write(array); //冲刷文件缓冲区 fos.flush(); //释放与该流文件的关联的系统资源。 fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Writer类
Writer类并不是OutputStream类的替代者,它只是在 写数据的方面简化了方法。Writer类写数据以字符为单位,OutputStreamWriter类,BufferedWriter类继承Reader类。public class Test{ public static void main(String[] args) { //写出 try { //创建输出流读字节 FileOutputStream fos = new FileOutputStream(file); //创建输出流读字符 OutputStreamWriter os = new OutputStreamWriter(fos); //创建缓冲输出流读行 BufferedWriter bw = new BufferedWriter(os); //读入内容。 bw.write("你是不是傻!"); //冲刷缓冲区 bw.flush(); //释放资源 bw.close(); os.close(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
相关文章推荐
- SSH学习九 依赖注入及加载Spring配置文件的方法
- java中怎样在界面中显示图片?
- 反射学习日志
- 基于maven进行spring 和mybatis的整合(Myeclpise)
- 【Java EE 学习 25 下】【网上图书商城js小技术点总结】
- Java类加载器总结
- Being a Good Boy in Spring Festival HDOJ (尼姆博弈)
- Java虚拟机参数设置
- Spring MVC 程序首页的设置,免除工程路径的设置
- netty开发教程(一)
- windows下使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu
- 双击不能运行可执行的jar文件
- java多线程6--线程池
- Java多线程之---ThreadGroup 管理Thread
- 解决eclipse中egit中的cannot open git-upload-pack问题
- Java_Web三大框架之Hibernate+jsp+HQL分页查询
- java错误篇二
- 【Java EE 学习 25 上】【网上图书商城项目实战】
- 解决eclipse在线安装不了genymotion
- JAVA设计模式