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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • dart jsonDecode与jsonEncode[通俗易懂]

    dart jsonDecode与jsonEncode[通俗易懂]jsDecode顾名思义是解析json,解析json到模型中,例如将字符串jsonpt解析到实体类payloadModel中:finalpayloadModel=PayLoadModel.fromJson(jsonDecode(pt)asMap<String,dynamic>);jsonEncode是把数据转为json

    2022年7月17日
  • Mysql+Mybatis分页查询

    Mysql+Mybatis分页查询一,首先做一个查询所有并显示daopublicinterfaceProductDAO{ publicList&lt;Product&gt;list();}mapper&lt;mappernamespace="hust.mm.dao.ProductDAO"&gt; &lt;selectid="list"resultType="Product"&gt; s..

    2022年6月2日
  • node+express操作cookie「建议收藏」

    node+express操作cookie「建议收藏」Cookie:有时也用其复数形式Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。用node操作cookie我们需要cookie-parser模块npmicookie-parser-s接下来在我们的文件中引入此模块//引入express模块constexpress=require(‘express’)//实例化expressconstapp=

    2022年7月11日
  • python对字符串中指定字符进行替换[通俗易懂]

    python对字符串中指定字符进行替换[通俗易懂](1)替换指定的所有字符:string.replace(‘a’,‘b’)表示将字符串string中所有字符为’a’的替换为’b’。例子string=”abcabcabc”string=string.replace(‘a’,’b’)print(string)输出bbcbbcbbc(2)替换指定位置i的字符为字符s:列表化字符串再以字符串形式输出例子i,s…

    2022年6月7日
  • java记录访问时间_在java中记录上次访问时间和上次修改时间?

    java记录访问时间_在java中记录上次访问时间和上次修改时间?首先,让我们关注这些事物的含义.访问–上次读取文件的时间,即上次访问文件数据的时间.修改–上次修改文件(内容已被修改),即文件数据上次修改的时间.更改–文件的元数据的最后一次更改(例如,权限),即上次更改文件状态的时间.编辑.访问时间正在改变.我建议你使用Thread.sleep(100)或其他东西,然后看看这个问题是否仍然存在.如果是这样,罪魁祸首就必须是您正在运行的操作系统,因为J…

    2022年7月8日
  • pycharm 不显示 plot 绘图

    pycharm 不显示 plot 绘图查了很多,都是说加:plt.show()但加过之后仍然不显示后来,我把importmatplotlib.pyplotasplt提到了另外几个import的前面,就正常显示了

    2022年8月27日

发表回复

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

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