Io流的概述
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流的概述的更多相关文章
- Java基础知识强化之IO流笔记16:IO流的概述和分类
1. IO流的分类 流向: (1)输入流:读取数据到内存 (2)输出流:写入数据到硬盘(磁盘) 操作的数据类型: (1)字节流:操作的数据是字节 ...
- Java io流的概述
Java语言定义了许多专门负责各种方式的输入/输出,这些类都被放在java.io包中.其中,所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类:而所有输 ...
- Java学习之路(十二):IO流
IO流的概述及其分类 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流(读写数据) 输出流(写数据) 流按操作 ...
- 基于JavaSE阶段的IO流详解
1.IO流基本概述 在Java语言中定义了许多针对不同的传输方式,最基本的就是输入输出流(俗称IO流),IO流是属于java.io包下的内容,在JavaSE阶段主要学下图所示的: 其中从图中可知,所有 ...
- File类的特点?如何创建File类对象?Java中如何操作文件内容,什么是Io流Io流如何读取和写入文件?字节缓冲流使用原则?
重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...
- 零基础学习java------day16-----文件,递归,IO流(字节流读写数据)
1.File 1.1 构造方法(只是创建已经存在文件的对象,并不能创建没有的文件) (1)public File(String pathname) (2)public File(String pare ...
- Java中IO流,输入输出流概述与总结
总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...
- Java基础知识强化之IO流笔记66:Properties的概述 和 使用(作为Map集合使用)
1. Properties的概述 Properties:属性集合类.是一个可以和IO流相结合使用的集合类. 该类主要用于读取以项目的配置文件(以.properties结尾的文件 和 xml文件). ...
- IO流03_流的分类和概述
[概述] Java的IO流是实现输入/输出的基础,它可以方便的实现数据的输入/输出操作. Java中把不同的输入/输出源(键盘.文件.网络连接)抽象表述为"流"(Stream). ...
随机推荐
- mysql之innodb存储引擎介绍
一.Innodb体系架构 1.1.后台线程 后台任务主要负责刷新内存中的数据,保证缓冲池的数据是最近的数据,此外还将修改的数据刷新到文件磁盘,保证在数据库发生异常的情况下Innodb能恢复到正常的运行 ...
- java架构师视频教程 内含activemq+jvm+netty+dubbo
目录: 架构师视频教程包含activemq jvm netty dubbo 0分布式项目实战所有视频(分布式项目视频)互联网架构师第二期-视频部分互联网架构师第二期-资料部分1.Netty快速入门教程 ...
- Nginx实现高可用(了解)
使用nginx实现反向代理和负载均衡时,nginx就是整个网站的入口了,所以需要保证nginx的高可用 主要资料包:链接:https://pan.baidu.com/s/1z_-xEM3uUICtZi ...
- ubuntu下配置JDK,Eclipse,android开发环境
前言:由于我的电脑是64位的,所以下面使用的jdk ; eclipse : 包括我安装的 ubuntu12.0.4LTS 都是64位的:如果你是32位请下载32位的系统以及jdk,eclipse等软件 ...
- 如何在spingboot项目中自定义自己的配置
在实际开发中,为了方便我们常常会考虑把配置文件的某一类配置映射到配置类上,方便spring容器加载,实现方法如下: 1. 书写配置文件信息:书写某一类特定字段开头的配置信息,例如在yml配置文件中可以 ...
- linux无法用root账号ssh登录(putty)
解决方法: 在kali打开终端,修改ssh配置文件. vi /etc/ssh/sshd_config 将PermitRootLogin, 改成PermitRootLogin yes.(允许用root登 ...
- Day 14 查找文件 find
find 查找方式 1.按照名称进行查找 [root@oldboyedu ~]# find ./ -name "*eth0" 2.按照名称查找(不区分大小写) [root@oldb ...
- Bat批处理命令执行中文路径解决方法
用window自带的记事本新建一个bat,然后把命令复制进去,保存就OK
- 用Python构造ARP请求、扫描、欺骗
目录 0. ARP介绍 1. Scapy简述 2. Scapy简单演示 2.1 安装 2.2 构造包演示 2.2.1 进入kamene交互界面 2.2.2 查看以太网头部 2.2.3 查看 ICMP ...
- Scala Data Structure
Arrays Array 固定长度:ArrayBuffer 可变长度 arr.toBuffer, buf.toArray 初始化是不要使用 new 使用 () 访问元素 使用 for (elem &l ...