Java字节流--输出流OutputStream和输入流InputStream
OutputStream和InputStream都是抽象类
OutputStream定义和InputStream定义
| OutputStream | InputStream |
| public abstract class OutputStream extends Object implements Closeable, Flushable |
public abstract class InputStream extends Object implements Closeable |
常用的两个实现子类
FileOutputStream
package demo;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
/**
* 输入输出是相对内存而言。
* 输出:从内存往硬盘写东西。对内存来说是输出,对硬盘来说是写入(write)
* 输入:从硬盘往内存写东西。对内存来说是输入,对硬盘来说是写入(read)
* @author Administrator
*
*/
public class TestDemo
{
public static void main(String[] args) throws Exception
{
//1、定义要输出文件的路径
File file = new File("g:"+File.separator+"demo"+File.separator+"test.txt");
if(!file.getParentFile().exists())//判断父路径是否存在
{
file.getParentFile().mkdirs();//不存在就创建
}
//2、应该使用OutputStream和其子类进行对象的实例化,此时目录存在,文件还不存在
//文件不存在会自动创建
OutputStream output = new FileOutputStream(file);//覆盖原来内容
// OutputStream output = new FileOutputStream(file,true);//对原来内容追加
//3、要进行文件内容的输出
String str = "好好学习天天向上!";
byte[] data = str.getBytes();
output.write(data);//全部字节输出
// output.write(data,0,3);//部分输出
//4、资源使用完要关闭
output.close();
}
}
FileInputStream
package demo;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
public class TestDemo2
{
public static void main(String[] args) throws Exception
{
//1、定义要输入文件的路径
File file = new File("g:"+File.separator+"demo"+File.separator+"test.txt");
if (!file.exists())//文件不存在就不操作了
{
System.out.println("文件不存在");
}
else {
//2、找一根传输的管子
InputStream is = new FileInputStream(file);
//3、存放传输的数据
byte[] data = new byte[1024];
int temp = 0 ;
int foot = 0 ;
while((temp=is.read())!=-1)
{
data[foot++] = (byte) temp ;
}
System.out.println("【"+new String(data,0,foot)+"】");
//4、关闭
is.close();
}
}
}
结果:
【好好学习天天向上!】
FileOutputStream和FileInputStream
|
FileOutputStream |
FileInputStream |
|
|
定义 |
public class FileOutputStream extends OutputStream |
public class FileInputStream extends InputStream |
|
构造方法 |
|
|
|
常用方法 |
void close() void write(byte[] b) void write(byte[] b, int off, int len) void write(int b) |
void close() int read() int read(byte[] b) int read(byte[] b, int off, int len) |
Java字节流--输出流OutputStream和输入流InputStream的更多相关文章
- java中输出流OutputStream 类应用实例(转)
OutputStream类该类是字节输出流的抽象类,定义了输出流的各种操作方法.这些方法的说明如表1所示.下面通过实例介绍如何使用OutputStream类向控制台输出字符串信息.步骤如下.(1)创建 ...
- [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)
一.概念及分类 InputStream(输入流)/OutputStream(输出流)是所有字节输入输出流的父类 [注]输入流和输出流的是按程序运行所在的内存的角度划分的 字节流操作的数据单元是8的字节 ...
- 自己动手写java 字节流输入输出流
数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流. "流是磁盘或其它外围设备中存储的数据的源点或终点." ...
- java 输出流 outputstream
一:输入和输出概念 输入流(inputstream):对于java程序来说,从程序写入文件叫做输出. 输出流(outputstream):对于java程序来说,从文件读取数据,到java程序叫做输入. ...
- Java的IO流以及输入流与输出流的异同
一:流的基本概念: Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.J ...
- Java IO流操作汇总: inputStream 和 outputStream【转】
我们在进行Android java 开发的时候,经常会遇到各种IO流操作.IO流操作一般分为两类:字符流和字节流.以“Reader”结尾都是字符流,操作的都是字符型的数据:以“Stream”结尾的都是 ...
- 字节输出流的续写和换行和字节输入流InputStream类&FileInputStream类介绍
数据追加续写 每次程序运行,创建输出流对象,都会清空目标文件中的数据.如何保目标文件中的数据,还能继续添加新数据呢? public FileOutputStream(File file,boolean ...
- JAVA输入输出流
概述: 各种流类型(类和抽象类)都位于位于java.io包中,各种流都分别继承一下四种抽象流中的一种: 类型 字节流 字符流 输入流 InputStream Reader 输出流 OutputStre ...
- Java输入/输出流体系
在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘 Java输入/输出流体系 1.字节流和字符流 字节流:按字节读取.字符流: ...
- Java字节流与字符流基本操作
在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据时要使用输入流读取数据,而当程序需要将一些数据保存起来时,就要使用输出流. 在java.io包中流的操作主要有字节流.字符流两大类,两类都 ...
随机推荐
- Schreier–Sims 算法
好看的实现. #include<bits/stdc++.h> using namespace std; #define int long long const int maxn=105; ...
- Hetao P1031 萌萌题 题解 [ 蓝 ] [ 线性 dp ]
萌萌题:一道结合了观察性质的线性 dp. 观察 我们先考虑极端情况:所有数相同,所有数降序排列两种情况. 对于所有数相同的情况,我们发现,最终可以合并出来的区间,最多只有 \(n \log n\) 个 ...
- 2023LN省选游记
前言 CSP第一轮都考完了,我才写这个游记.我真懒惰 书接上回 正文 Day -114514 我也没想到我居然能报省选. 报上了.准备去爆零. Day -114513~Day -1 学习暴力算法以及痛 ...
- LeetCode 题解大全
项目说明 LeetCode 系列题解致力于帮助程序员更好地理解和掌握算法思维,内容包含详细的解题思路分析.图文并茂的示例讲解和完整的代码实现. LeetCode 最全题解:持续更新中,欢迎 Star ...
- GIT如何进行团队协作
加入其他开发成员.修改代码并提交 选择库点击管理 点击添加成员邀请用户 以下三种方式都行 加入后如下 第二人如何进行修改文件: 在文件夹中创建本地库git init 建立远程连接 git remote ...
- 互联网和DeepSeak时代,获取信息这么容易,为什么我们还是学习不好?
因为人性倾向于立即获得享受,而不是延迟获得享受,然而,学习就是延迟获得享受,所以,学习,其实是反人性的一种活动. 学习,特别是对知识的深入学习,其实需要付出大量的时间和精力,这个过程中必然伴随着各种各 ...
- docker - [15] springboot微服务打包docker镜像
步骤: 1.构建Springboot项目 2.打包应用 3.编写dockerfile 4.构建docker镜像 5.发布运行 一.构建Springboot项目 (1)创建一个SpringBoot(以下 ...
- 单页应用(SPA)是什么?
来源:https://zhuanlan.zhihu.com/p/648113861 概述 单页应用(SPA,Single Page Application)是一种网页应用或网站的设计模式,它在浏览器中 ...
- 详解vue-router基本使用
来源:https://m.jb51.net/article/111499.htm 本篇文章主要介绍了详解vue-router基本使用,详细的介绍了vue-router的概念和用法,有兴趣的可以了解 ...
- .net 8 实现 JWT 无状态设计 token [附源码]
本文主要分为两个部分: 1.概念 2..net 8 demo 第一部分主要描述所有与 JWT 相关的概念以及词汇,及其原理:第二部分是代码示例,文末附 源码下载. * 阅读提示 :鼠标悬停在 章节标题 ...