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. Go操作MySQL

    MySQL是常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库. Go操作MySQL 连接 Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的 ...

  2. 初始mqtt服务

    MQTT入门 概念 mqtt意为消息队列遥测传输,是IBM开发的一个即时通讯协议.由于其维护一个长连接以轻量级低消耗著称,所以常用于移动端消息推送服务开发. 协议格式 mqtt协议控制报文的格式包含三 ...

  3. android 屏幕切换

    1.将Activity固定位竖屏可以在配置文件这么写 <activity android:screenOrientation="portrait"> 横屏显示: < ...

  4. python做傅里叶变换

    傅里叶变换(fft) 法国科学家傅里叶提出,任何一条周期曲线,无论多么跳跃或不规则,都能表示成一组光滑正弦曲线叠加之和.傅里叶变换即是把一条不规则的曲线拆解成一组光滑正弦曲线的过程. 傅里叶变换的目的 ...

  5. 关于CPU核心,线程,进程,并发,并行,及java线程之间的关系

    前言:作为一个转行java的小白,一直搞不清楚java中的多线程.于是来梳理一下关于CPU核心,线程,进程,并发,并行,及java线程之间的关系, 1.CPU角度来看: 我们以Intel的Core i ...

  6. python实例化时带括号与不带

    1.首先这个标题题目不是很准确,但一时又想不到更好的标题所以只好用这个标题,下面我们来看看为什么. 首先我们要明白python中类的实例化是要加上括号的,那么不加括号是什么意思你,看代码 class ...

  7. 使用dbutils

    环境准备: 包结构: mysql导出sql脚本: //product CREATE TABLE `product` ( `id` int(10) NOT NULL AUTO_INCREMENT, `n ...

  8. 05:(H5*) node、npm、nrm

    目录: 1:NPM 2:CNPM 3:NRM 4:homebrew 5:具体指令 6: -g -S -D 1:NPM NPM的全称是Node Package Manager, 是一个NodeJS包管理 ...

  9. 《Java7并发编程实战手册》读书笔记

    一.线程管理 1.线程的创建和运行 创建线程的2种方式: 继承Thread类,并覆盖run()方法 创建一个实现Runnable接口的类.使用带参数的Thread构造器来创建Thread对象 每个Ja ...

  10. linux中必备常用支持库的安装(CentOS)

    在CentOS安装软件的时候,可能缺少一部分支持库,而报错.这里首先安装系统常用的支持库.那么在安装的时候就会减少很多的错误的出现 yum install -y gcc gdb strace gcc- ...