img src 文件流_Java中的IO流之输出流|乐字节
大家好,乐字节小乐又来咯,上次讲到了IO流的输入流,本文将讲述Java输出流。
![](/assets/blank.gif)
Java输入输出流
一、输出流
1、抽象类:OutputStream 和 Writer
OutputStream和Writer也非常相似。
在OutputStream 里包含如下方法:
![](/assets/blank.gif)
在 Writer 中, 因为字符流直接以字符作为操作单位,所以 Writer 可以用字符串来代替字符数组,即以String对象来作为参数。 包含如下方法:
![](/assets/blank.gif)
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 ...
最新文章
- 江苏省三级偏硬考核重点
- mysql 导入文件提示 --secure-file-priv option 问题
- 互联网医院 2020年突出成就_资讯丨2020中国医院互联网影响力排行榜
- SAP Commerce Extension Module
- 远程访问CENTOS的MYSQL数据库设置
- phpcmsV9 用seotitle后面的小横杠分隔符自定义
- Elasticsearch学习系列-搜索技术基本知识
- Qemu-6.1.0多热补丁管理
- 【转】linux系统的7种运行级别
- vim使用方法和vim解决乱码的问题
- mongodb创建超级管理员_MongoDB 用户、库、表的管理
- AWS DeepRacer 强化学习RL,工作流程
- 免费下载收费音乐教程,亲测有效
- VTK读取rawdata
- 联想G460驱动问题
- python 图标题上移_请问如何在这个Python中将标题一起爬下来啊
- c++中的trivial
- Android捕获home按键 以及实体键捕获
- 华为c语言笔试形式,最新华为C语言笔试题目分享
- 大数据流批一体化架构设计
热门文章
- 【ES】Es使用 报错 TransportClient llegalstateException : Unsupported transport.type [netty3]
- 【Flink】Flink 多并行度下的 watermark触发机制
- 快速实现word、excel、ppt、txt等办公文件在线预览功能(Java版)
- Java多线程学习十二: synchronized的工作原理 以及背后的“monitor 锁”
- java ee 员工管理系统,fb3492 javaEE_原生Servlet_MySql企业员工信息管理系统的设计与实现,java源码含论文与答辩PPT...
- 误差分析计算公式及其 matlab 代码实现
- windows 根据端口杀死进程
- 实现下拉菜单的宽度与登录人ID长度的匹配
- React-native集成tfs自动发版问题
- 团队编程项目作业1-成员简介及分工