img src 文件流_Java中的IO流之输出流|乐字节
大家好,乐字节小乐又来咯,上次讲到了IO流的输入流,本文将讲述Java输出流。
Java输入输出流
一、输出流
1、抽象类:OutputStream 和 Writer
OutputStream和Writer也非常相似。
在OutputStream 里包含如下方法:
在 Writer 中, 因为字符流直接以字符作为操作单位,所以 Writer 可以用字符串来代替字符数组,即以String对象来作为参数。 包含如下方法:
2、文件节点类: FileOutputStream 和 FileWriter
FileOutputStream 和 FileWriter,它们都是节点流,直接和指定文件关联。
public class WriteFile {public static void main(String[] args) {//1、建立联系 File对象 源头 目的地File dest=new File("c:/IO/print.txt");//2、选择流 文件输出流 OutputStream FileOutputStreamOutputStream out=null;//以追加形式写出文件 必须为true 否则会覆盖try {out=new FileOutputStream(dest,true);//3、操作String str="shsxt is very good good good good";//字符串转成字节数组byte[] data=str.getBytes();out.write(data,0,data.length);out.flush();//强制刷新出去} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("文件未找到");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("文件写出失败");}finally{try {if(out!=null){out.close();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("关闭输出流失败");}}}}//1、创建源File dest=new File("f:/IO/char.txt");//2、选择流Writerwr=new FileWriter(dest,true);//3、写出String str="锄禾日当午码农真辛苦一本小破书一读一上午"; wr.write(str);//追加内容wr.append("我就是追加进去的");wr.flush();//强制刷出//4、关闭资源wr.close();
结合输入输出流,可以实现文件拷贝
public static void copyFile(String srcPath, String destPath) throws FileNotFoundException,IOException{// 1、建立联系 源(存在且为文件) 目的地(文件可以不存在)File src = new File(srcPath);File dest = new File(destPath);if(!src.isFile()){//不是文件或者为null时抛出异常System.out.println("只能拷贝文件");throw new IOException("只能拷贝文件");}// 2、选择流InputStream in = new FileInputStream(src);OutputStream out = new FileOutputStream(dest);// 3、操作byte[] flush = new byte[1024];int len = 0;// 读取while (-1 != (len = in.read(flush))) {// 写出out.write(flush, 0, len);}out.flush();// 强制刷出// 关闭流 先打开的后关闭out.close();in.close();}
3、缓冲处理流:BufferedOutputStream 和 BufferedWriter
缓冲流提升性能,BufferedWriter存在新增方法newLine(),不能发生多态
public static void copyFile(String srcPath, String destPath) throws FileNotFoundException,IOException{// 1、建立联系 源(存在且为文件) 目的地(文件可以不存在)File src = new File(srcPath);File dest = new File(destPath);if(!src.isFile()){//不是文件或者为null时抛出异常System.out.println("只能拷贝文件");throw new IOException("只能拷贝文件");}// 2、选择流InputStream in = new BufferedInputStream(new FileInputStream(src));OutputStream out =new BufferedOutputStream(new FileOutputStream(dest));// 3、操作byte[] flush = new byte[1024];int len = 0;// 读取while (-1 != (len = in.read(flush))) {// 写出out.write(flush, 0, len);}out.flush();// 强制刷出// 关闭流 先打开的后关闭out.close();in.close();}} //1、创建源 仅限于字符的纯文本File src=new File("f:/char.txt");File dest=new File("f:/testIO/char.txt");//2、选择流BufferedReader reader=new BufferedReader(new FileReader(src));BufferedWriter wr=new BufferedWriter(new FileWriter(dest,true));pend(msg2); //3、新增方法操作String line=null;while(null!=(line=reader.readLine())){wr.write(line);//wr.append("");//换行符号wr.newLine();}wr.flush();//强制刷出// 4、关闭流 先打开的后关闭out.close();in.close();
4、转换处理流:OutputStreamWriter
可以处理文件的字符集,即将文件按指定字符集进行编码存储 。
//写出文件编码BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(new File("f:/testIO/char.txt"))),"utf-8"));String info=null;while(null!=(info=br.readLine())){bw.write(info);bw.newLine();}bw.flush();bw.close();
5、字节数组节点类: ByteArrayOutputStream
/*** 字节数组输出流:操作与文件输出流有些不同,有新增方法,所以不可以使用多态* @throws IOException */public static byte[] write() throws IOException{//目的地字节数组byte[]dest;//选择流不同点:不需要将目的地放入new ByteArrayOutputStream()ByteArrayOutputStream bos=new ByteArrayOutputStream();//操作写出, 可以当作将本地的内容通过字节数组写入服务器String msg="字节数组输入流:操作与文件输入流操作一致";byte[]info=msg.getBytes();//将内容写入bosbos.write(info,0,info.length);//不同点:获取数据toByteArray():是将字节数组输出流转为字节数组dest=bos.toByteArray();//释放资源bos.close();//由于bos在jvm中,所以关闭与否不影响return dest;}
img src 文件流_Java中的IO流之输出流|乐字节相关推荐
- java输出流输入流的使用_Java中的IO流之文件输入输出流
Java中的IO流之文件输入输出流 1.文件流介绍 文件流是以字节为单位进行读写文件的,所以属于字节流,并且是低级流.文件流位于java.io包下. 输入输出流分别是FileInputSteam和Fi ...
- 接收字节流_Java中的IO流之输入流|乐字节
亲爱的乐字节的小伙伴们,小乐又来分享Java技术文章了.上一篇写到了IO流,这篇文章着重 谈谈输入流,再下次再说输出流. 点击回顾上一篇:乐字节Java之file.IO流基础知识和操作步骤 一. 输入 ...
- java体系的四大基类_Java中的io流学习(了解四大基类和基本步骤)
Java中io流四大基类及io流操作四大基本步骤 io流:(input/output)即输入输出流.面向对象的思想之一是面向接口编程,面向父类编程,也就是多态.所以学好基类(父类)很重要. 分类 按处 ...
- java io流顶层_Java中的IO流(一)
一,IO流的分类 A,按照操作的对象不同可分为字节流与字符流 B,按照流的方向不同可分为输入(指从外部存储设备拿文件到内存)流也叫读与输出(指从内存把文件写入到外部存储设备)流也叫写 注:字节流可以操 ...
- java中io流是类吗_Java中的IO流
今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...
- java byte char io流_Java基础进阶 IO流之字节流
1.IO流 1.1.概述 之前学习的File类它只能操作文件或文件夹,并不能去操作文件中的数据.真正保存数据的是文件,数据是在文件中.而File类它只是去对文件本身做操作,不能对文件中的数据进行操作. ...
- java 文件指定位置插入_java 中利用io流将一个文件插入到另一个文件中的指定位置,指定位置...
展开全部 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.F ...
- java src 文件路径_java中获得src路径下文件的常用方法
在代码中一般读取src下的配置文件 读取src路径下的log4j.properties和message.properties 读取message.properties文件并将properties中的键 ...
- java中--《_Java中的IO流(五)
当需要直接把信息输出到文件中的时候,并且想要每次输入完成后立即把信息输出到文件中,演示如下 1 private static void function_demo2() throwsIOExcepti ...
最新文章
- Javascript学习笔记2——函数
- 第7集 构造函数中抛出的异常
- linux 打开端口1935,CentOS服务器开放端口
- pytorch元素相乘_bert_pytorch学习(1)
- IntelliJ IDEA 2017.3-2018.1 全系列汉化包
- 【机房重构】关于App.config配置文件
- 河南省公安机关户政服务管理工作规范(试行)
- python之OCR文字识别
- LBS(基于位置服务(Location Based Service))
- 虚拟DOM和deff算法
- iOS 第三方库、插件、知名博客总结
- 路由器 三层交换机 网关有什么区别
- 实录:记谷歌在微信脚下的一次翻车
- 一种分数微分基方法用于多尺度纹理增强(Fractional Differential Mask: A Fractional Differential-Based Approach for Multi)
- 用ps增加照片的气氛--镜头光晕
- labview如何加载库_LabVIEW如何方便地调用DLL文件
- android 对数标度 图库,如何排序水平堆积条形图JS(具有对数标度)
- koa status 204的问题
- 面试题:1000瓶酒找1瓶毒酒
- 安徽理科480分学计算机的大学,2021年安徽高考480分理科能上什么大学,安徽理科480分能上什么大学...
热门文章
- 【Flink】运行Flink 1.6.2 程序偶然报错 Premature end of GET request
- 60-140-044-使用-DataSink-使用OutputTag进行Side Output(侧输出)
- Spring Boot RabbitMQ 详解
- 【java】JDK8的HashMap
- 【Hbase】命令行load数据文件到Hbase
- Oracle数据字典中查看约束信息/约束相关笔记
- java中junit用法,JUnit基本用法
- Could not retrieve transaction isolation level from server
- Python3 移动文件——合集
- (转)十分钟入门pandas