Io流的概述
IO: I输入(Input),O 输出(Output)
1.什么是IO流?
数据流,IO是严格的“水流模型” 所以IO流是用来读写数据,或者传输数据。
注意:File只能操作文件对象本身,而不能读写文件数据,
读写文件数据应该使用IO流。
2.IO流的分类
(1): 按照流的方向可以分为:输入流和输出流。
1.输入流:输入流是用于读数据进来!
以内存为基准点,把磁盘文件中的数据或者网络介质中的数据流入到内存的流称为输入流。
2.输出流:输出流是用于写数据出去。
以内存为基准点,把内存中的数据
写出到磁盘文件或者网络介质中去的流称为输出流。
(2):按照流的数据单位可以分为:字节流和字符流。
1.字节流:如果流中的数据的最小单位是字节,这个流就是字节流。
也就是流会以一个一个的字节进行数据的传输。
2.字符流:如果流中的数据的最小单位是字符,这个流就是字符流。
也就是流会以一个一个的字符进行数据的传输。
字符流通常是用于传输文本文件数据的。
(3):字节输入流:以内存为基准点,把磁盘文件中的数据或者网络介质 中的数据 以字节的形式输入到内存中去的流。

字节输出流:以内存为基准点,把内存中的数据以字节的形式
写出到磁盘文件或者网络介质中去的流称为字节输出流。

字符输入流:以内存为基准点,把磁盘文件中的数据或者网络介质中的数据以字符的形式输入到内存中去的流。(一般针对文本文件)

字符输出流:以内存为基准点,把内存中的数据以字符的形式
写出到磁盘文件或者网络介质中去的流称为字符输出流。
常识:
英文字符和数字字符在任何编码集中通常都是占1个字节。
GBK一个中文通常是由2个字节组成的。
UTF-8一个中文通常是由3个字节组成的。
(4).使用方法
IO流的分类
字节流:
字节输入流 字节输出流
InputStream(抽象类) OutputStream(抽象类)
FileInputStream(实现类) FileOutputStream(实现类)
字符流:
字符输入流 字符输出流
Reader(抽象类) Writer(抽象类)
FileReader(实现类) FileWriter(实现类)
注意:io流每次写数据的时候会覆盖文件之前的数据。
如果不希望覆盖之前的数据,应该在构造器的第二个参数加上追加数据的参数true
(5).用法
1.FileOutputStream(字节输出流)
创建对象
FileOutputStream fos = new FileOutputStream(路径);
写出数据方法:
fos.write(int b); // 写一个字节出去
fos.write(byte[] b)// 写一个字节数组(桶)出去
fos.write(byte[] b , int offset , int len ); 只写字节数组的一部分出去
2.FileInputStream(字节输入流)
创建对象
FileInputStream fis = new FileInputStream(路径);
直接读取一桶水返回给我们把文件的字节全部装入到一个字节数组去。
byte[] buffer = fis.readAllBytes();
String st = new String(buffer);
3.FileReader(字符输入流)
创建对象
FileReader fr = new FileReader(路径);
char[] buffer = new char[4];
int len = 0 ;
while((len = fr.read(buffer)) > 0){
String rs = new String(buffer,0,len);
这里不要换行,文本内容自带换行!
System.out.print(rs);
4.FileWriter(字符输出流)
创建对象
FileWriter fw = new FileWriter(路径,true);
fw.write();
Properties类
1.什么是Properties类:
是一个Map集合。基于键值对存储数据的。 就是一个集合。
翻译过来的名字叫属性集合。 它通常代表的是一个属性文件
2.Properties的核心功能:
(1)可以把系统中的数据借助io流技术直接存储到一个属性文件中去。
属性文件后缀是.properties,里面是键值对。
属性文件一般作为系统或者后续框架技术的配置文件
2.用法
需求:把一个系统的用户名和密码存入到一个属性文件中去。
Properties prop = new Properties();
prop.setProperty("userName","admin");
prop.setProperty("passWord","003197");
{passWord=003197, userName=admin}
System.out.println(prop);

可以把系统中的数据借助io流技术直接存储到一个属性文件中去。
//store(OutputStream out, String comments)
// 把prop集合中的数据直接存储到一个属性文件中去
OutputStream os = new FileOutputStream("src/sys.properties");
// 参数一:文件输出管道
// 参数二:操作描述!随便写!
prop.store(os,"我爱你,Here is my system's userName and passWord!!");

os.close();

Io流的概述的更多相关文章

  1. Java基础知识强化之IO流笔记16:IO流的概述和分类

    1. IO流的分类   流向:     (1)输入流:读取数据到内存     (2)输出流:写入数据到硬盘(磁盘)   操作的数据类型:    (1)字节流:操作的数据是字节             ...

  2. Java io流的概述

    Java语言定义了许多专门负责各种方式的输入/输出,这些类都被放在java.io包中.其中,所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类:而所有输 ...

  3. Java学习之路(十二):IO流

    IO流的概述及其分类 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流(读写数据)     输出流(写数据) 流按操作 ...

  4. 基于JavaSE阶段的IO流详解

    1.IO流基本概述 在Java语言中定义了许多针对不同的传输方式,最基本的就是输入输出流(俗称IO流),IO流是属于java.io包下的内容,在JavaSE阶段主要学下图所示的: 其中从图中可知,所有 ...

  5. File类的特点?如何创建File类对象?Java中如何操作文件内容,什么是Io流Io流如何读取和写入文件?字节缓冲流使用原则?

    重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...

  6. 零基础学习java------day16-----文件,递归,IO流(字节流读写数据)

    1.File 1.1 构造方法(只是创建已经存在文件的对象,并不能创建没有的文件) (1)public File(String pathname) (2)public File(String pare ...

  7. Java中IO流,输入输出流概述与总结

    总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...

  8. Java基础知识强化之IO流笔记66:Properties的概述 和 使用(作为Map集合使用)

    1. Properties的概述  Properties:属性集合类.是一个可以和IO流相结合使用的集合类. 该类主要用于读取以项目的配置文件(以.properties结尾的文件 和 xml文件). ...

  9. IO流03_流的分类和概述

    [概述] Java的IO流是实现输入/输出的基础,它可以方便的实现数据的输入/输出操作. Java中把不同的输入/输出源(键盘.文件.网络连接)抽象表述为"流"(Stream). ...

随机推荐

  1. php文件加密解密

    利用base64加解密 base64_encode是加密,而base64_decode是解密 语法:string base64_encode(string data);   语法:string bas ...

  2. 4.String、StringBuffer、StringBuilder

    一.String类型 String类型是一个引用类型,但是该类被final修饰,属于最终类,不能派生子类. 字符串一旦初始化就不能再被更改,因为String类中存储内容的char[]数组是也被fina ...

  3. FreeSql (二十八)事务

    FreeSql实现了四种数据库事务的使用方法,脏读等事务相关方法暂时未提供.主要原因系这些方法各大数据库.甚至引擎的事务级别五花八门较难统一. 事务用于处理数据的一致性,处于同一个事务中的操作是一个U ...

  4. asp.net core 使用 signalR(二)

    asp.net core 使用 signalR(二) Intro 上次介绍了 asp.net core 中使用 signalR 服务端的开发,这次总结一下web前端如何接入和使用 signalR,本文 ...

  5. python SSTI利用

    原理python的SSTI不仅可以向网页插入一些XSS代码,而且还可以获取一些变量和函数信息,尤其是secret_key,如果获取到则可以对flask框架的session可以进行伪造.对于tornad ...

  6. python+selenium自动化测试——浏览器驱动

    selenium控制浏览器需要下载对应版本的驱动,并把下载好的驱动解压然后拷贝到python的安装目录. 1.chrome 驱动对应版本及下载地址;https://npm.taobao.org/mir ...

  7. Decommission Datanode

    Decommission Datanode就是把Datanode从HDFS集群中移除掉.那问题来了,HDFS在设计时就把诸如机器故障考虑进去了,能否直接把某台运行Datanode的机器关掉然后拔走呢? ...

  8. Hadoop 之 Hadoop2.0

    1.Hadoop2.0与1.0 答:Hadoop2.0之后的版本移除了原有的JobTracker和TaskTracker,改由Yarn平台的ResourceManager负责集群中所有资源的管理和分配 ...

  9. linux环境下Nginx的安装

    因为工作环境大多数都是windows server服务器,仅有的linux服务器同事们都在抢着用,所以特意买了一台阿里云服务器,感兴趣的小伙伴可以了解一下,一年只要293: https://promo ...

  10. linux mint安装ffmpge

    sudo add-apt-repository ppa:mc3man/trusty-media sudo apt-get update sudo apt-get install ffmpeg