前言

1:流

在Java IO中,流是一个核心的概念。流从概念上来说是一个连续的数据流。你既可以从流中读取数据,也可以往流中写数据。流与数据源或者数据流向的媒介相关联。在Java IO中流既可以是字节流(以字节为单位进行读写),也可以是字符流(以字符为单位进行读写)。

2:IO最典型的数据源和目标媒介:
文件 管道 网络连接 内存缓存 System.in, System.out, System.error(注:Java标准输入、输出、错误输出)

从是读媒介还是写媒介的维度看,Java IO可以分为:

输入流:InputStream和Reader
输出流:OutputStream和Writer
而从其处理流的类型的维度上看,Java IO又可以分为:

字节流:InputStream和OutputStream
字符流:Reader和Writer

我们的程序需要通过InputStream或Reader从数据源读取数据,然后用OutputStream或者Writer将数据写入到目标媒介中。其中,InputStream和Reader与数据源相关联,OutputStream和writer与目标媒介相关联。 以下的图说明了这一点:

3:Java IO的基本用法

字节流写文件

  public static void writeByteToFile() throws IOException{String hello= new String( "hello word!");byte[] byteArray= hello.getBytes();File file= new File( "d:/test.txt");//因为是用字节流来写媒介,所以对应的是OutputStream //又因为媒介对象是文件,所以用到子类是FileOutputStreamOutputStream os= new FileOutputStream( file);os.write( byteArray);os.close();}

字节流读文件

public static void readByteFromFile() throws IOException{File file= new File( "d:/test.txt");byte[] byteArray= new byte[( int) file.length()];//因为是用字节流来读媒介,所以对应的是InputStream//又因为媒介对象是文件,所以用到子类是FileInputStreamInputStream is= new FileInputStream( file);int size= is.read( byteArray);System. out.println( "大小:"+size +";内容:" +new String(byteArray));is.close();}

字符流读文件

public static void writeCharToFile() throws IOException{String hello= new String( "hello word!");File file= new File( "d:/test.txt");//因为是用字符流来读媒介,所以对应的是Writer,又因为媒介对象是文件,所以用到子类是FileWriterWriter os= new FileWriter( file);os.write( hello);os.close();}

字符流写文件

  public static void readCharFromFile() throws IOException{File file= new File( "d:/test.txt");//因为是用字符流来读媒介,所以对应的是Reader//又因为媒介对象是文件,所以用到子类是FileReaderReader reader= new FileReader( file);char [] byteArray= new char[( int) file.length()];int size= reader.read( byteArray);System. out.println( "大小:"+size +";内容:" +new String(byteArray));reader.close();}

字节流转换为字符流

---------------------------------------------------------------
注:我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:895817687
---------------------------------------------------------------public static void convertByteToChar() throws IOException{File file= new File( "d:/test.txt");//获得一个字节流InputStream is= new FileInputStream( file);//把字节流转换为字符流,其实就是把字符流和字节流组合的结果。Reader reader= new InputStreamReader( is);char [] byteArray= new char[( int) file.length()];int size= reader.read( byteArray);System. out.println( "大小:"+size +";内容:" +new String(byteArray));is.close();reader.close();}

未完待续

java之IO流(一)相关推荐

  1. Java基础—IO流

    第一讲   IO概述 1. 流的概念 IO流即InputOutput的缩写,在Java中IO流用来处理设备之间的数据传输,Java对数据的操作是通过IO流的方式, 我们可以把IO流抽象的当作一根管道, ...

  2. java数据通道抽象为流_【java】IO流

    对于java的IO流的理解很长时间来都是很乱,包括学习其他的语言对这一块知识也都算是一个盲点.更多的时候一提到读取保存数据就是使用数据库.这一次学习了IO流,自己又解决了一个很大的盲点. IO流为我们 ...

  3. 第15章-输入/输出 --- 理解Java的IO流

    (一)理解Java的IO流 JAVA的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在Java中把不同的输入/输出(键盘.文件.网络连接等)抽象表述为"流"( ...

  4. Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)

    Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...

  5. Java中IO流的总结

    有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...

  6. Java 的 IO 流

    接着上一篇的 "Java 的 File 类" 的随笔,在File类的基础上,我们就走进Java的IO流吧. 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的 ...

  7. java中io流是类吗_Java中的IO流

    今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...

  8. Java - 文件(IO流)

    Java - 文件 (IO) 流的分类:     > 文件流:FileInputStream | FileOutputStream | FileReader | FileWriter     & ...

  9. java 的io流需要学吗_Java的IO流之字节流,必须要学得内容,你会嘛?

    原标题:Java的IO流之字节流,必须要学得内容,你会嘛? 伙伴们~ 端午节过的如何呀~ 有没有很开心呀~ 假期已过咱们继续开动了 IO流 先来认识一下IO流: IO流用来处理设备之间的数据传输,Ja ...

  10. 总是记不住java的IO流用法?用N个问题教你掌握java IO流

    本文分享自华为云社区<总是记不住java的IO流用法?用N个问题教你掌握java IO流>,原文作者:breakDraw . Java IO 体系看起来类很多,感觉很复杂,但其实是 IO ...

最新文章

  1. 树言树语:谁动了苹果的弦
  2. python调用c优缺点_Python调用C模块以及性能分析
  3. linux c 编程 pdf_C/C++编程笔记:Linux 日志文件系统未解之谜,你知道吗?
  4. ·MySQL数据库管理(SQL操作命令,解决忘记密码,设置用户权限)
  5. html3d上下翻转4面效果,花式实现图片3D翻转效果
  6. 关联容器----关联容器概述,关联容器操作,无序容器
  7. 总结:request.setAttribute()、session.setAttribute()和request.getParameter()的联系与区别
  8. 主从不同步故障案例一
  9. 和利时dcs系统服务器设置,和利时DCS控制系统组态流程
  10. (二)网络传输协议:网络摄像机传输协议、流媒体传输协议
  11. linux消息分发机制,RabbitMQ消息分发轮询和Message Acknowledgment
  12. citespace:Your version‘s status cannot be verified due to network issue. Check your network conne
  13. 交换机怎么用计算机配置,配置交换机,详细教您怎么配置交换机
  14. 【大数据处理技术】第三篇 大数据处理与分析(暂停更新)
  15. JavaScript实现异步请求并发数限制
  16. python进程池multiprocessing.Pool和线程池multiprocessing.dummy.Pool实例
  17. 文件在EDIUS中打不开了怎么办
  18. 企业网络安全|监控解决方案
  19. Word——永久修改默认标题和正文样式
  20. 从零开始,申请开通微信小程序全流程

热门文章

  1. Greenplum【环境搭建 01】CentOS Linux release 7.5 环境单机版详细安装配置步骤+问题解决(含安装包资源)
  2. php socket 握手,python Socket之客户端和服务端握手详细介绍
  3. 【LeetCode】LeetCode之跳跃游戏——动态规划+贪心算法
  4. Mybatis-Dao层实现(通过代理方式)
  5. linux系统给jvm分配来多少内存
  6. Windows10 家庭版——开启Hyper-V虚拟机
  7. Electrification Plan
  8. [HNOI2003]操作系统
  9. ajax请求返回json实例,Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
  10. Spring-学习笔记06【spring_day02资料_dbutils】