Java流对象:InputStream、OutputStream、Reader、Writer

Java流对象:InputStream、OutputStream、Reader、Writer

大家好,又见面了,我是全栈君。

流对象使用完一般要用close方法关闭。释放资源。

InputStream 和OutPutStream

二者都是字节输入和输出的抽象父类,子字节为单位处理数据,每次读取、写入一个字节,适合处理二进制文件,如:音频、视频、图片等。

Redaer和writer是字符输入输出的抽象父类,以字符为单位处理数据,每次读取或写入一个字符,适合处理文本文件,实现类有FileReader和FileWriter.

 附:Java代码实现图片文件的拷贝:

package com.buaa.comparable;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class testCopy {

public static void main(String[] args) {

copy();
}

static void copy(){

//1.创建数据源文件
File file = new File(“e:\\picture1.jpg”);
InputStream is = null;
File file1 = null;

OutputStream os = null;

try {

//搭建输入流管道
is = new FileInputStream(file);
//3.创建目的文件;
file1 = new File(“e:\\picture2.jpg”);
//4.搭建输出流管道
os = new FileOutputStream(file1);
int b = 0;

//每次从源文件读出一个字节,就像目标文件写入一个字节
while((b=is.read())!=-1){

os.write(b);
}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {

// TODO Auto-generated catch block
e.printStackTrace();
}finally{

try {

if(os!=null){

os.close();
}else if (is!=null) {

is.close();
}
} catch (IOException e) {

// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

 

转载于:https://www.cnblogs.com/7758521gorden/p/8046675.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107822.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月12日 下午5:00
下一篇 2022年3月12日 下午5:00


相关推荐

  • import java.io 是什么意思_Java IO 详解

    import java.io 是什么意思_Java IO 详解JavaIO详解初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!)这是javaio比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于i…

    2022年6月7日
    33
  • python创建新数组_python怎么创建数组

    python创建新数组_python怎么创建数组一 直接定义法:1.直接定义matrix=[0,1,2,3]2.间接定义matrix=[0foriinrange(4)]  print(matrix)二 Numpy方法:Numpy内置了从头开始创建数组的函数:zeros(shape)将创建一个用指定形状用0填充的数组。默认的dtype是float64。下面是几种常用的创建方法:#coding=utf-8importnumpyasnp…

    2022年6月7日
    56
  • ebpf简介_ebpf编程

    ebpf简介_ebpf编程@TOC[]什么是eBPFeBPF是什么呢?从它的全称“扩展的伯克利数据包过滤器(ExtendedBerkeleyPacketFilter)”来看,它是一种数据包过滤技术,是从BPF(BerkeleyPacketFilter)技术扩展而来的。顾名思义BPF来源于伯克利大学,最早应用于网络数据包过滤器,它比当时最先进的抓包技术快20倍,其主要得利于它的两个设计:内核态引入一个新的虚拟机,所有指令都在内核虚拟机中运行。用户态使用BPF字节码来定义过滤表达式,然后传递给内核

    2026年2月8日
    4
  • webstrom2021激活码【2021最新】

    (webstrom2021激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~ML…

    2022年3月20日
    58
  • 几种 IO编程比较

    几种 IO编程比较参考:Netty权威指南第一版Java网络IO编程总结(BIO、NIO、AIO均含完整实例代码)1.传统的BIO模型通常由一个独立的Acceptor线程负责监听客户端的连接,它接收到客户端连接请求之后为每个客户端创建一个新的线程进行处理,处理完之后,通过流返回应答给客户端,线程销毁。这就是典型的—请求—应答通信模型。该模型最大的问题就是缺乏弹性伸缩能力,当客户端并发量增加后,服务端的线程

    2022年4月30日
    42
  • python waitpid_wait和waitpid详解

    python waitpid_wait和waitpid详解wait 的函数原型是 include includepid twait int status 进程一旦调用了 wait 就立即阻塞自己 由 wait 自动分析是否当前进程的某个子进程已经退出 如果让它找到了这样一个已经变成僵尸的子进程 wait 就会收集这个子进程的信息 并把它彻底销毁后返回 如果没有找到这样一个子进程 wait 就会一直阻塞在这里 直到有一个出现为止 参数 参数 status 用来保存被

    2026年3月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号