Java基础IO类之字节输入输出流
一、IO流概述
1、IO流:输入输出流(Input/Output)
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象,即数据在设备间的传输流,
流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作
大概来说:
输入流:把数据从文件读到(输入)程序中
输出流:从程序当中把一个数据(输出)写入文件中
2、流的分类
根据处理数据类型的不同分为:字符流和字节流
根据数据流向不同分为:输入流和输出流
(1)字节流
a.字节输出流
OutputStream类的定义:
public abstract class OutputStream extends Object implements Closeable,Flushable
此抽象类是表示输出字节流的所有类的超类,输出流接受输出字节并将这些字节发动到inputStream类的某个接受器
b.字节输入流
InputStream类的定义:
public abstract class InputStream implements Closeable
这个抽象类是所有基于字节的输入流的超类,抽象了Java的字节输入模型。在这个类中定义了一些基本的方法。
FileinputStream 是它的子类 从文件系统中的某个文件中获得输入字节
举例:
package IODemo; import java.io.*;
/**
* 字节输出输入流
* 输出流:超类OutputStream,对文件输出流的操作的子类是FileOutputStream
* 输入流:超类InputStream,对文件输入流的操作子类是FileInputStream
*/
public class ByteStreaDemo { private static void in(){
//1、确定目标文件
File file = new File("D:\\test\\test.txt"); try {
//2、构建一个输入流对象
InputStream in = new FileInputStream(file); // 读取的数据是一个字节一个字节的,所以要用一个字节数组来收
// 相当于一个容器来装文件里面的东西 1024大小表示容器能装1024个字节 1024字节=1kb
byte[] bytes = new byte[1024];
int len = -1; //表示已经读取了多少个字节,如果是 -1,表示已经读取到文件的末尾
//字符串拼接
StringBuilder buf = new StringBuilder();
//把数据读入到数组中,并且返回读取的字节数,当不等于-1时表示已经读取到了数据,等于-1时表示已经读完
while ((len = in.read(bytes)) !=-1){
buf.append(new String(bytes)); // 根据读取到的字节数组,转换为字符串内容,并且进行拼接,添加到StringBuilder中
}
System.out.println(buf); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} } private static void out(){
//1、确定目标文件
File file = new File("D:\\test\\test.txt"); try {
// 2、构建一个文件输出流的对象
OutputStream out = new FileOutputStream(file,true); // 如果加上true的话表示的是在原文件内容上追加内容,如果不加ture默认是重写
// 3、内容
String info = "大家好,我是落魄书生!\r\n"; //window 下 \r\n 表示换行
//4、out对象写入文件中 要字节类型 字符串转字节类型
out.write(info.getBytes());
System.out.println("写入成功!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} public static void main(String[] args) { out();
in();
}
}
Java基础IO类之字节输入输出流的更多相关文章
- Java基础IO类之字节数组流
package IODemo; //字节数组流 :内部维护这着一个字节数组,我们可以利用流的读取机制来处理字符串 无需关闭,不会报IO异常 // ByteArrayInputstream ByteAr ...
- Java基础IO类之数据流
DataInputStream: 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本java数据类型.应用程序可以使用数据输出流 写入稍后由数据输入流读取的数据.DataInputStrea ...
- IO流的字节输入输出流(InputStream,OutputStream)
字节输出流与文件字节输出流 文件存储原理和记事本打开文件原理 OutputStream及FileOutputStream import java.io.FileOutputStream; import ...
- Java基础IO类之缓冲流
首先要明确一个概念: 对文件或其他目标频繁的读写操作,效率低,性能差. 使用缓冲流的好处是:能够高效的读写信息,原理是先将数据先缓冲起来,然后一起写入或者读取出来. 对于字节: BufferedInp ...
- Java基础IO类之对象流与序列化
对象流的两个类: ObjectOutputStream:将Java对象的基本数据类型和图形写入OutputStream ObjectInputStream:对以前使用ObjectOutputStrea ...
- Java基础IO类之字符串流(查字符串中的单词数量)与管道流
一.字符串流 定义:字符串流(StringReader),以一个字符为数据源,来构造一个字符流. 作用:在Web开发中,我们经常要从服务器上获取数据,数据返回的格式通常一个字符串(XML.JSON), ...
- Java基础IO类之File类
大三了,目前基础太差了,重新学习过!代码如下,里面都有详细的解释每一行代码代表的意思~ package IODemo; import java.io.File; import java.io.File ...
- Java基础IO类之打印流
package IODemo; import java.io.*; /* 打印流 : 很方便的进行输出 字节打印流 增强输出功能 字符打印流 */ public class PrintStreamDe ...
- Java IO详解(一)------字节输入输出流
File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...
随机推荐
- 小白学 Python(12):基础数据结构(字典)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 简单的Dos Unity操作(debug)
使用adb命令启动Unity app,eg: adb shell am start -S -a android.intent.action.MAIN -n co.spe3d.sticker/com.u ...
- django-Views之request(二)
book/views.py def index(request): http_list = { '<h1>请求协议: <span style="color:red" ...
- 谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信
前言 之前发过一篇文章,用 Python 制作的给父母天气预报提醒的小工具天气变冷了,给父母制作一个天气提醒小助手,这篇文章我同步到博客上之后,有读者在评论区留言,对于部分微信没有网页版接口,导致无法 ...
- Bigo的Java面试,我挂在了第三轮技术面上.........
背景 前段时间家里出了点事,辞职回家待了一段时间,处理完老家的事情后就回到广州这边继续找工作,大概是国庆前几天我去面试了一家叫做Bigo(YY的子公司),面试的职位是面向3-5年的Java开发,最终自 ...
- [springboot 开发单体web shop] 1. 前言介绍和环境搭建
前言介绍和环境搭建 简述 springboot 本身是为了做服务化用的,我们为什么要反其道使用它来开发一份单体web应用呢? 在我们现实的开发工作中,还有大量的业务系统使用的是单体应用,特别是对于中小 ...
- 详细梳理ajax跨域4种解决方案
前言 自动接触前端,跨域这个词就一直萦绕在耳畔.因为一般接手的项目都已经做好了这方面的处理,而且之前一直感觉对这方面模棱两可,所以今天就抽个时间梳理一下. 为什么需要跨域 跨域这个概念来自一个叫 &q ...
- .NET Core 又一杀器! Web Blazor框架横空出世!
多年来,Javascript(及其子框架)已在浏览器中运行DOM(文档对象模型),并且掌握了脚本知识才能真正操作客户端UI.大约2年前,所有这些都随着Web Assembly的引入而发生了变化-Web ...
- Web for pentester_writeup之Directory traversal篇
Web for pentester_writeup之Directory traversal篇 Directory traversal(目录遍历) 目录遍历漏洞,这部分有三个例子,直接查看源代码 Exa ...
- [tesseract-ocr]OCR图像识别Ubuntu下环境包安装
问题: ImportError: libSM.so.6: cannot open shared object file: No such file or directory 解决: sudo apt- ...