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. springboot统一ajax返回数据格式,并且jquery ajax success函数修改

    服务端代码: package com.zhqn.sc.cfg; import org.springframework.core.MethodParameter; import org.springfr ...

  2. C#中Path类的常用方法

    场景 打开VS,输入Path,我们可以看到其定义. 都是静态方法,所以我们可以使用类名直接调用. 实现 新建命令行程序,编码如下: string str = @"C:\Users\Admin ...

  3. 几道STL题目(FJUT - OJ STL训练1)

    这个OJ一直在做,一些专题题目都很好,从易至难,阶梯上升,很适合像我这样的蒟蒻 =7= 这篇是关于其中一个专题训练的题解思路及代码   http://120.78.128.11/Contest.jsp ...

  4. selenium WebDriver 截取网站的验证码

    在做爬虫项目的时候,有时候会遇到验证码的问题,由于某些网站的验证码是动态生成的,即使是同一个链接,在不同的时间访问可能产生不同的验证码, 一 刚开始的思路就是打开这个验证码的链接,然后通过java代码 ...

  5. Linux配置部署_新手向(四)——Redis安装与配置

    前言 配置完mysql之后,我们来紧接着安装redis,毕竟这些不用太多的思考,就是命令执行,配置文件,连接测试. 安装 首先,我们要看安装哪个版本,可以在Redis官网看看我们安装哪个版本. 在之前 ...

  6. Java面向对象程序设计第5章1-9

    1.面向对象的主要特征是什么? 三大特征是:封装.继承和多态. 封装:是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象. 继承: ...

  7. 简单粗暴的关键两部实现连接远程云服务器数据库SqlServer 2012

    要连上远程服务器的数据库,前面的那些数据库配置就不说了,网上都一样. 下面讲讲关键的两点,也是我尝试普通的方法无效后通过下面的方法成功连上的. 1.点开云服务器的安全组,看看里面的端口是否都放行了.我 ...

  8. Ubuntu18.04 显卡驱动+Cuda安装踩坑记录 以及Ubuntu虚拟内存的添加

    前几天买了张亮机卡,终于把主显卡成功直连到Unraid OS的虚拟机上了.然后就开始安装ubuntu系统开始配置环境,遇到了不少坑,特此记录. gcc版本问题 在安装显卡驱动的时候,不要修改gcc版本 ...

  9. Hbase入门(二)——安装与配置

    本文讲述如何安装,部署,启停HBase集群,如何通过命令行对Hbase进行基本操作. 并介绍Hbase的配置文件. 在安装前需要将所有先决条件安装完成. 一.先决条件 1.JDK 和Hadoop一样, ...

  10. Python奇技淫巧 - 持续更新中....

    Python奇技淫巧 人生苦短,我用Python: 编程界这绝对不是一句空话,尤其是对于使用过多个语言进行工作的同学们来说,用Python的时间越长,越有一种我早干嘛去了的想法,没事,啥时候用Pyth ...