IO字节流。
字节输出流:
java.io.OutputStream :抽象类,是表示输出字节流的所有类的父类。
java.io.FileOutputStream extends OutputStream: 文件字节输出流。
作用:把内存中的数据写入硬盘文件。
构造方法: FileOutputStream(String name),创建一个向指定名称的文件写入数据的输出流。
FileOutputStream(File file) ,创建一个向指定File对象的文件中写入数据的输出流。
构造方法的作用:1、创建一个FileOutputStream对象。
2、根据构造方法中的文件/文件路径,创建一个空文件。
3、把FileOutputStream 对象指向该文件。
使用步骤:1、创建FileOutputStream对象。2、write方法写数据。3、释放资源。
write方法:
public class main {
public static void main(String[] args) throws IOException {
File file=new File("C:\\Users\\天\\Desktop\\a.txt");
FileOutputStream fos=new FileOutputStream(file);
fos.write(12);
fos.close();
}
}
public class main {
public static void main(String[] args) throws IOException {
File file=new File("C:\\Users\\天\\Desktop\\a.txt");
FileOutputStream fos=new FileOutputStream(file);
byte[] bytes={65,66,67};
fos.write(bytes);
fos.close();
}
}
续写和换行写:
续写构造函数:FileOutputStream(String name / File file,boolean append)
append: 续写开关,true 。。。false。。。
换行符号: Windows : \r\n fos.write("\r\n")
字节输入流:
java.io.InputStream :字节输入流,抽象类,是表示字节输入流的所有类的父类。
java.io.FileInputStream extends InputStream.把磁盘文件读入内存。
构造方法:FileInputStream(String name) FileInputStream(File file)
构造方法作用:1、创建对象,2、把对象指向要操作的文件
使用步骤:1、创建对象。2、read() 3、释放资源。
read() 后 ,指针自动指向下一字节, 结束标记为-1.
一次读取多个字节:
int read(byte[] b) ,从输入流读取一定数量的字节,并存在缓冲区数组b中。
返回的是实际读取到的字节数。
字节流练习:
复制文件:
public static void main(String[] args) throws IOException {
File file =new File("C:\\Users\\天\\Desktop\\a.txt");
File file1 =new File("C:\\Users\\天\\Desktop\\b.txt");
FileInputStream fis=new FileInputStream(file);
FileOutputStream fos=new FileOutputStream(file1,true);
byte[] bytes=new byte[2];
int len;
while ((len=fis.read(bytes))!=-1){
fos.write(bytes);
}
fos.close();
fis.close();
}
字符流:
读取中文字符时,由于编码问题,可能会出错,所以,Java提供专门处理文本文件的字符流类。
字符输入流:
java.io.Reader :抽象类,是所有字符输入流的父类。
java.io.FileReader extends InputStreamReader extend Reader.
FileReader: 文件字符输入流,把硬盘文件的数据以字符流的方式读入内存。
构造方法:FileReader(String fileName / File file )
构造方法作用:1、创建FileReader对象。2、指向要读取的文件。
字符输出流:
java.io.Writer: 抽象类, 所有字符输出流的父类。
java.io.FileWriter extends OutputStreamWriter extends Writer.
FileWriter: 文件字符输出流
构造方法:FileWriter(String fileName / File file)
注意:使用write()时,是把数据写入内存缓冲区先,flush()或释放资源时会刷新到文件中。
flush 和 close区别:
flush:刷新缓冲区,流对象可继续使用。close:刷缓冲区后释放资源,流对象不可使用。
字符输出流写数据的其他方法:
void write (char[ ] c) 写入字符数组。
abstract void write (char[ ] c, int off, int len)
void write( String str) 写入字符串。
void write ( String str,int off, int len ) ..
流中异常的处理:
JDK1.7 新特性:
try后可以增加个(),里面可以定义流对象,这个流对象的作用域在try中有效,try执行完后,自动释放。
public static void main(String[] args) {
File file =new File("C:\\Users\\天\\Desktop\\a.txt");
try (FileWriter fw=new FileWriter(file);){
fw.write(98);
fw.close();
}catch (IOException e){
System.out.println(e);
}
}
JDK9 新特性:
在try前面定义流对象, ()里引入流对象名称 ,try代码结束后,也能释放,不用写finally。
IO字节流。的更多相关文章
- JAVA IO 字节流与字符流
文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节. ...
- Java学习之IO字节流
字节流分为FileInputStream 和FileOutputStream package com.io; import java.io.File; import java.io.FileInput ...
- Java提高篇(二):IO字节流、字符流和处理流
在我们的Java语言当中,通常会有对文件进行读写,因此我们引入java的IO类来进行文件的读写. 一.字节流 下面是一个字节流的实例: import java.io.*; public class I ...
- Java学习笔记28(IO字节流)
IO定义: 写:Output操作:将内存上的数据持久化 到设备上,这个动作称为输出: 读:Input操作:把硬盘上的东西读取到内存,这个动作称为输入: 这两种操作称为IO流 ...
- 14、IO (字节流、字符流)
输入和输出 * A:输入和输出 * a: 参照物 * 到底是输入还是输出,都是以Java程序为参照 * b: Output * 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 ...
- Java IO 字节流与字符流 (五)
Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字 ...
- Java IO 字节流与字符流 (三)
概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...
- Java IO 字节流与字符流 (二)
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_3_字节输出流_OutputStream类&FileOutputStream
都在IO包下 所有字节输出最顶层的父类 它是一个抽象类.abstract修饰的 一般这种类定义的都是所有字节流都可以使用公共的方法,
随机推荐
- DevExpress 显示进度条
1.使用了DevExpress的WaitDialogForm WaitDialogForm waitDialogForm = null; new Thread((ThreadStart)delegat ...
- HTTP之首部
http报文包括起始行.首部和主体. HTTP请求/响应起始行 请求组成: 方法 + 请求URL + HTTP版本 响应组成: HTTP版本 + 数字状态码 + 描述状态的原因短语 HT ...
- Flask07 Jinja2模板测试器、控制语句IF/FOR、变量/块 赋值、作用域、块级作用域
1 测试器及其使用 在模板中的 {{}} 可以书写测试器,格式如下 {{ 变量 is 测试器名称 }} 1.1 在python中导入 Jinja2 的模板 from jinja2 import te ...
- 28.【转载】挖洞技巧:APP手势密码绕过思路总结
说到APP手势密码绕过的问题,大家可能有些从来没接触过,或者接触过,但是思路也就停留在那几个点上,这里我总结了我这1年来白帽子生涯当中所挖掘的关于这方面的思路,有些是网上已经有的,有些是我自己不断摸索 ...
- 一个使用MVC3+NHibernate “增删改查” 的项目(修正版)
前言: 谈到NHibernate大伙并不陌生,搞Java的更是清楚,Hibernate是一个目前应用的最广泛的开放源代码的对象关系映射框架,它对Java的JDBC(类似于ADO.Net)进行了非常 ...
- App知识点汇总
1.Fragment 2.AndroidStudio 用夜神安卓模拟器调试 进入夜神模拟器安装目录下的bin目录,执行nox_adb.exe connect 127.0.0.1:62001,Andro ...
- Python开发【第二篇】: 基本数据类型(一)
1. 整型 整型即整数,用 int 表示,在 Python3 中整型没有长度限制. 1.1 内置函数 1. int(num, base=None) int( ) 函数用于将字符串转换为整型 ...
- 2019前端面试之html5
html5新增特性 语义化标签 表单新特性 视频和音频canva画布 svg画图 地理位置 为鼠标提供的拖放api webwroker storage websocker 常见块级标签 div,p,h ...
- hdu1695(莫比乌斯反演模板)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1695 题意: 对于 a, b, c, d, k . 有 x 属于 [a, b], y 属于 [c, ...
- HDU6438:Buy and Resell(贪心+数据结构)
题意 : 给出一些数.你可以从左到右对这些数进行三种操作花费 Ai 买入东西.以 Ai 价格卖出你当前有的东西.或者什么都不做.现在问你可以获取的最大利益是多少 分析:对每一个元素产生的贡献可以先计算 ...