通过举例了解java中的流
Java流结构介绍:
Java所有的流类位于java.io包中,都分别继承字以下四种抽象流类型。
字节流 | 字符流 | |
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
1.继承自InputStream/OutputStream的流都是用于向程序中输入/输出数据,且数据的单位都是字节(byte=8bit),如图,深色的为节点流,浅色的为处理流。
2.继承自Reader/Writer的流都是用于向程序中输入/输出数据,且数据的单位都是字符(2byte=16bit),如图,深色的为节点流,浅色的为处理流。
Java流对文件的读取代码演示
1.java的输出流---字节流
代码展示:
- public class Ioshow {
- public static void main(String[] args) {
- new Ioshow().outStreamMethod();
- }
- public void outStreamMethod(){
- try {
- //创建输出字节流 并指定输出的文件地址
- OutputStream os = new FileOutputStream("F:/iotest/outio.txt");
- //要输入文件的字段
- String ostr = "写入到文件中";
- //调用输出流的write方法输出到指定文件中
- os.write(ostr.getBytes());
- System.out.println("执行完毕");
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
运行结果:
2.Java的输入流---字节流
代码展示
- public class Ioshow {
- public static void main(String[] args) {
- // new Ioshow().outStreamMethod();
- new Ioshow().inputStreamMethod();
- }
- public void inputStreamMethod(){
- try {
- //创建输入字节流 并指定要读取的文件地址
- InputStream is = new FileInputStream("F:/iotest/inputio.txt");
- //声明一个字节流对象
- byte cont[]=new byte[1024];
- //将文件中的内容读取到字节数组中
- is.read(cont);
- //打印出读取的内容
- System.err.println(new String(cont));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
运行结果
3.java输入流----字符流
代码展示
- public void fileinput(){
- try {
- File file = new File("F:/iotest/inchartio.txt");
- //创建输入流 并指定读取文件位置
- InputStream reader = new FileInputStream(file);
- //创建字符输入流 并传入输流对象 并指定输入流的读取编码
- InputStreamReader is = new InputStreamReader(reader, "UTF-8");
- char chat[] = new char[1000];
- //将文件中的内容读取到 chart[]中
- is.read(chat);
- for (char c : chat) {
- System.out.print(c);
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
运行结果
4.java输出流-----字符流
实现将inchartio.txt文件的内容读取到outchartio.txt中
代码展示
- public class Ioshow {
- public static void main(String[] args) {
- // new Ioshow().outStreamMethod();
- // new Ioshow().inputStreamMethod();
- new Ioshow().fileinput();
- }
- public void fileinput(){
- try {
- System.out.println("====start read====");
- File file = new File("F:/iotest/inchartio.txt");
- //创建输入流 并指定读取文件位置
- InputStream reader = new FileInputStream(file);
- //创建字符输入流 并传入输流对象 并指定输入流的读取编码
- InputStreamReader is = new InputStreamReader(reader, "UTF-8");
- char chat[] = new char[1000];
- //将文件中的内容读取到 chart[]中
- is.read(chat);
- System.out.print(chat);
- //声明一个输出的文件
- File outfile = new File("F:/iotest/outchartio.txt");
- System.out.println(outfile.exists());
- if (outfile.exists()==false) {//文件若不存在
- System.out.println("没有该文件夹 创建了一个");
- outfile.createNewFile();//创建文件
- }
- //创建输出流
- OutputStream os = new FileOutputStream(outfile);
- //创建字符流 并传入输出流 指定字符编码
- OutputStreamWriter osw = new OutputStreamWriter(os, "utf-8");
- //将读取到的内容写到文件中
- osw.write(chat);
- //清空输出流
- osw.flush();
- System.out.println("===the end====");
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
运行结果
Java流对图片的读取和写入
代码展示:
- public class Ioshow {
- public static void main(String[] args) {
- new Ioshow().imginput();
- }
- public void imginput(){
- InputStream is = null;
- DataInputStream dis = null;
- OutputStream os =null;
- DataOutputStream dos =null;
- try {
- is = new FileInputStream("F:/iotest/帅气猴.jpg");
- dis = new DataInputStream(is);
- os = new FileOutputStream("F:/iotest/输出猴.jpg");
- dos = new DataOutputStream(os);
- int img ;
- while ((img = dis.read())!=-1) {
- dos.write(img);
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- dos.close();
- os.close();
- dis.close();
- is.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
运行结果
通过举例了解java中的流的更多相关文章
- 理解Java中字符流与字节流的区别
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...
- Java中IO流的总结
有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...
- java中有关流操作的类和接口
一.java操作l流有关的类和接口 1.File 文件类 2.RandomAccessFile 随机存储文件类 3.InputStream 字节输入流 4.OutputStream 字节输出流 5.R ...
- 理解Java中字符流与字节流
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可 ...
- 理解Java中字符流与字节流的区别(转)
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...
- Java中对象流使用的一个注意事项
再写jsp的实验作业的时候,需要用到java中对象流,但是碰到了之前没有遇到过的情况,改bug改到崩溃!!记录下来供大家分享 如果要用对象流去读取一个文件,一定要先判断这个文件的内容是否为空,如果为空 ...
- java 中 IO 流分为几种?(未完成)
java 中 IO 流分为几种?(未完成)
- JAVA中IO流总结
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42119261 我想你对JAVA的IO流有所了解,平时使用的 ...
- Java中IO流中的装饰设计模式(BufferReader的原理)
本文粗略的介绍下JavaIO的整体框架,重在解释BufferReader/BufferWriter的演变过程和原理(对应的设计模式) 一.JavaIO的简介 流按操作数据分为两种:字节流与字符流. 流 ...
随机推荐
- Nginx系列1.2:nginx-rtmp流媒体服务器添加权限认证(推流权限和播放权限)
用到的工具:OBS Studio(推流).nginx-rtmp流媒体服务器.VLC(拉取流播放) Nginx系列1:ubuntu16.04编译出适合自己的nginx服务器 Nginx系列1.1:ubu ...
- glPixelStorei 详解 包括像素传输
3.glPixelStore 像glPixelStorei(GL_PACK_ALIGNMENT, 1)这样的调用,通常会用于像素传输(PACK/UNPACK)的场合.尤其是导入纹理(glTexImag ...
- jade-if-else-unless-case
if else - var lession = ['node','jade'] if lession if lession.length > 2 p 1 #{lession.join(', ') ...
- ubuntu下后台服务的管理
注册后台服务后都有脚本存在/lib/systemd/system路径下 如mysql为mysql.service 被service管理的进程被杀掉还是会重启的 应使用service XXX stop停 ...
- 二、vue基础--计算属性和监听器
1.一些操作需要计算后才能得到的用计算属性,需要放在computed属性中代码如下: <div id='app'> <div> <label>宽:</labe ...
- python----四种内置数据结构(dict、list、tuple、set)
1.dict 无序,可更改 2.tuple 有序,不可更改 3.list 有序,可更改(增加,删除) 4.set 无序,可能改 {元素1,元素2,元素3.....}和字典一样都是用大括号定义,不过不同 ...
- Pycharm----显示tab制表符
设置前: 设置后: 操作方法:
- jQuery匿名函数和自定义插件
https://www.cnblogs.com/joey0210/p/3408349.html (function($){ //do something; })(jQuery);
- centos6.5 安装emqtt
emqtt有监控界面,集群配置也非常简单. # yum -y update # yum install unzip vim wget xsltproc fop tk unixODBC unixODBC ...
- OPT
http://cdn.imgtec.com/sdk-documentation/PowerVR.Performance+Recommendations.pdf 宝贝 https://developer ...