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(); }
}
}

结果:

【好好学习天天向上!】

 

FileOutputStreamFileInputStream

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的更多相关文章

  1. java中输出流OutputStream 类应用实例(转)

    OutputStream类该类是字节输出流的抽象类,定义了输出流的各种操作方法.这些方法的说明如表1所示.下面通过实例介绍如何使用OutputStream类向控制台输出字符串信息.步骤如下.(1)创建 ...

  2. [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)

    一.概念及分类 InputStream(输入流)/OutputStream(输出流)是所有字节输入输出流的父类 [注]输入流和输出流的是按程序运行所在的内存的角度划分的 字节流操作的数据单元是8的字节 ...

  3. 自己动手写java 字节流输入输出流

    数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流.   "流是磁盘或其它外围设备中存储的数据的源点或终点." ...

  4. java 输出流 outputstream

    一:输入和输出概念 输入流(inputstream):对于java程序来说,从程序写入文件叫做输出. 输出流(outputstream):对于java程序来说,从文件读取数据,到java程序叫做输入. ...

  5. Java的IO流以及输入流与输出流的异同

    一:流的基本概念:           Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.J ...

  6. Java IO流操作汇总: inputStream 和 outputStream【转】

    我们在进行Android java 开发的时候,经常会遇到各种IO流操作.IO流操作一般分为两类:字符流和字节流.以“Reader”结尾都是字符流,操作的都是字符型的数据:以“Stream”结尾的都是 ...

  7. 字节输出流的续写和换行和字节输入流InputStream类&FileInputStream类介绍

    数据追加续写 每次程序运行,创建输出流对象,都会清空目标文件中的数据.如何保目标文件中的数据,还能继续添加新数据呢? public FileOutputStream(File file,boolean ...

  8. JAVA输入输出流

    概述: 各种流类型(类和抽象类)都位于位于java.io包中,各种流都分别继承一下四种抽象流中的一种: 类型 字节流 字符流 输入流 InputStream Reader 输出流 OutputStre ...

  9. Java输入/输出流体系

    在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘 Java输入/输出流体系 1.字节流和字符流 字节流:按字节读取.字符流: ...

  10. Java字节流与字符流基本操作

    在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据时要使用输入流读取数据,而当程序需要将一些数据保存起来时,就要使用输出流. 在java.io包中流的操作主要有字节流.字符流两大类,两类都 ...

随机推荐

  1. nginx 编译安装及配置解析

    一.编译安装 安装插件 安装需要的组件 yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel ...

  2. Schreier–Sims 算法

    好看的实现. #include<bits/stdc++.h> using namespace std; #define int long long const int maxn=105; ...

  3. PC端自动化测试实战教程-1-pywinauto 环境搭建(详细教程)

    1.简介 之前总有人在群里或者私信留言问:Windows系统安装的软件如何自动化测试呢?因为没有接触过或者遇到过,所以说实话宏哥当时也不清楚怎么实现,怎么测试.然而在一次偶然的机会接触到了Python ...

  4. Atcoder ABC342D Square Pair 题解 [ 绿 ] [ 数论 ] [ 唯一分解定理 ]

    Square Pair:唯一分解定理好题. 引理 若 \(x=y^2\times z\),且 \(x\) 是完全平方数,那么 \(z\) 也一定是完全平方数. 证明可以用唯一分解定理证,每次把偶数次幂 ...

  5. Luogu P9180 [COCI2022-2023#5] Slastičarnica 题解 [ 蓝 ] [ 区间 dp ] [ dp 状态优化 ] [ 前缀和优化 ]

    Slastičarnica:非常好的区间 dp 题. 暴力 不难设计出暴力状态:\(dp_{q,i,j}\) 表示进行到第 \(q\) 次操作,剩下区间 \([i,j]\) 是否可行. 直到全部状态都 ...

  6. Luogu P11230 CSP-J 2024 接龙 题解 [ 线性 dp ] [ 前缀和 ]

    接龙:一个前缀和优化 dp 或者单调队列优化 dp 的题目. 怎么周围的人都秒了 T3 不会 T4 啊,只有我觉得 T4 很套路,T3 比较难写吗. 暴力 dp 为了避免多维的状态定义,我们把每个人的 ...

  7. RabbitMQ(九)——消息持久化

    RabbitMQ系列 RabbitMQ(一)--简介 RabbitMQ(二)--模式类型 RabbitMQ(三)--简单模式 RabbitMQ(四)--工作队列模式 RabbitMQ(五)--发布订阅 ...

  8. HttpWebRequest 返回BadRequest(400)

    问题背景: 使用 HttpWebRequest 调用 GetResponse() 方法,返回 WebException,HttpStatusCode 是 400,无法获取返回的错误信息: 解决方式: ...

  9. autMan奥特曼机器人-对接deepseek教程

    一.安装插件ChatGPT 符合openai api协议的大模型均可使用此插件,包括chatgpt-4/chatgpt-3.5-turbo,可自定义服务地址和模型,指令:gpt,要求Python3.7 ...

  10. 傻妞PLUS机器人教程——安装

    特性 简单易用的消息搬运功能. 简单强大的自定义回复功能. 完整支持 ECMAScript 5.1 的插件系统,基于 otto. 支持通过内置的阉割版 Express / fetch ,接入互联网. ...