JAVA之IO 基础(字节流和字符流)
来源:互联网 发布:ringdivas 淘宝 编辑:程序博客网 时间:2024/04/30 18:47
概述
Java的io流,可大致分为两类,字节流和字符流
如下图:
字节流(Byte Streams)
所谓字节流,即在java程序采用8位的字节单位实现输入和输出,如上图所示,所有的字节流都继承自 InputStream(输入流)和OutputStream(输出流).
首先看一下官方的小例子:
FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("xanadu.txt"); out = new FileOutputStream("outagain.txt"); int c; while ((c = in.read()) != -1) { out.write(c); } } finally { if (in != null) { in.close(); } if (out != null) { out.close(); } }
FileInputStream 为源(文件)提供了read()方法,取出一定单位(字节)的内容,并将其赋值给一个int变量后,FileOutputStream 再将得到的变量c输出至新文件中,这就是整个输入输出的整个过程,如下图:
切记 在程序完成操作后,一定要记得关闭输入,输入流,否则可能产生资源泄露(resource leak)
字符流(Character Streams)
Java 存储使用unicode 编码存储字符,字符流根据系统本地环境使用具体的编码,当然也可以手动指定编码,中文系统一般使用utf-8或者gbk
如:
例:
FileReader inputStream = null; FileWriter outputStream = null; try { inputStream = new FileReader("xanadu.txt"); outputStream = new FileWriter("characteroutput.txt"); int c; while ((c = inputStream.read()) != -1) { outputStream.write(c); } } finally { if (inputStream != null) { inputStream.close(); } if (outputStream != null) { outputStream.close(); } }
和字节流的操作基本相同,值得注意的是当inputstream执行read()赋值给int变量c的时候,是将获取的字符传递给c的后16位,而字节流获取的字节传递至int变量的后8位。这是由java基本变量类型的长度决定的
0 0
- Java基础:IO流之字节流和字符流
- java 基础之 IO(字节流和字符流)
- java基础--IO流之字节、字符和转换流
- JAVA之IO 基础(字节流和字符流)
- java基础-IO-字符流、字节流
- 黑马程序员——Java基础------IO流之字符流、字节流和缓冲区。
- 黑马程序员---java基础之IO(字符流和字节流)
- Java IO操作之字节流和字符流
- java IO之字节流和字符流比较
- 【Java之IO】1.字节流和字符流
- Java IO学习笔记之字节流和字符流
- java IO之字节字符流
- Java IO字符流和字节流
- Java-IO:字节流和字符流
- Java-IO-字节流和字符流
- java IO字符流和字节流
- Java基础----IO流之字节流
- Java基础--IO流之字节流
- Android Tips
- vim的配置
- Description Resource Path LocationType Java compiler level does not match the version of the instal
- 剑指offer 面试题2 Singleton模式 C++实现
- Qt .pro文件部分变量解析
- JAVA之IO 基础(字节流和字符流)
- 串(四)
- 灵感
- 锁屏背景替换-xp篇
- 最长回文子串 与 最长回文子序列
- 存储-杂
- 打字练习感悟
- HDU 2102 A计划 (DFS)
- Openstack组件实现原理 — Glance架构(V1/V2)