package OneStage.OneStageG.IObetyBuff;
/*
IO流:实质就是用来处理设备间传输数据的问题:文件的复制,文件上传,下载(硬盘与内存之间数据传输问题)输入:读数据,指把硬盘上的数据,读到内存中输出:写数据,指把内存中的数据,写到硬盘中
IO流的分类(根据数据类型来分):字节流,字符流字节流:字节输入流和字符输出流 (最底层的流,万用流)字符流:字符输入流和字符输出流 (主要是操作文本文件,用记事本打开可以用看懂的)
一. 字节流的相关操作字节流抽象基类:InputStream: 字节流的输入流抽象超类 eg:子类 FileInputStreamoutputStream:字节流的输出流抽象超类 eg:子类 FileOutputStream*/import java.io.*;public class IODemoA {public static void main(String[] args) throws IOException {//定义一个文件路径String pathAndNane = "JavaOfBase\\src\\OneStage\\OneStageG\\IObetyBuff\\text.txt";//定义一个文件对象File test2File = new File("JavaOfBase\\src\\OneStage\\OneStageG\\IObetyBuff\\test2.txt");File test3File = new File("JavaOfBase\\src\\OneStage\\OneStageG\\IObetyBuff\\test3.txt");/*创建字节流输出对象,并关联到指定的文件,如果这个方法不存在,就按字符串内容创建文件FileOutputStream(String ss) 第一种构造方式 传字符串FileOutputStream(File ff) 第二种构造方式 传文件对象 (规范)FileOutputStream(test3File, true);第三种构造方法,让文件可以追加写入,参数值为:true*/FileOutputStream testFOS = new FileOutputStream(pathAndNane);FileOutputStream test2FOS = new FileOutputStream(test2File);FileOutputStream test3FOS = new FileOutputStream(test3File, true);//调用write(int b ),write(byte[] b),write(byte[] int off,int len)方法写入数据testFOS.write(97);testFOS.write(98);byte[] b = {97,98,99,100,101};byte[] bys = "EFGHKLMN".getBytes();test2FOS.write(b);test2FOS.write(bys);test2FOS.write(bys,2,4);/*向文件写入数据的时候,换行的处理,不同的操作系统,对换行符的标识是不一样的windows:\r\n, Linux:\n, Mac:\r*/test2FOS.write("\r\n".getBytes());test2FOS.write("我爱Java".getBytes());/*文件追加写入数据FileOutputStream(test3File, true);第三种构造方法,让文件可以追加写入,参数值为:true*/test3FOS.write("我在学习Java".getBytes());test3FOS.write("\r\n".getBytes());//☆ 关闭释放资源 让与此流相关的操作全部断开,其它的程序才可以访问这些文件testFOS.close();test2FOS.close();test3FOS.close();}
}

字节流,读取文件

 /*
字节流读取数据方法*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;public class IODemoB {public static void main(String[] args) throws IOException {//声名读取文件的路径和名称String path = "JavaOfBase\\src\\OneStage\\OneStageG\\IObetyBuff\\readDemo.txt";//定义文件对象File pathAndName = new File(path);FileInputStream fileInp = new FileInputStream(pathAndName);/*read()返回为什么是int 因为是字节读取,所以底层是整数,一次只读一个字节当读取到没有字符的时候,返回-1,这样可以用来判断是否读到文件尾,可以做循环遍历*/int readByte ;/*fileInp.read() 读取数据readByte=fileInp.read() 赋值操作对返回的值做了判断*/while ((readByte=fileInp.read())!=-1){System.out.print((char)readByte);}//关闭字节文件读取流fileInp.close();}
}
-------一次读一个字节数组数据------public class ReadByByteArray {public static void main(String[] args) throws IOException {//定义一个文件路径String filePath = "JavaOfBase\\src\\OneStage\\OneStageG\\IObetyBuff\\text.txt";//生成文件对象File srcFile = new File(filePath);//构造一个读取文件流FileInputStream srcFileStream = new FileInputStream(srcFile);//定义一个接收的字节数组byte[] bysTemp = new byte[1024];/*/获得读取数据的长度// int len = srcFileStream.read(bysTemp);len:返回的是读取到的字节长度,当没读取到数据时,就返回-1,这个可以用来判断数据是否读完了*/int len;while ((len =srcFileStream.read(bysTemp))!=-1){System.out.println(len);//调用String()中的方法,将字节转化成字符String contTemp = new String(bysTemp);System.out.print(contTemp);}//关闭流srcFileStream.close();}
}

-----字节缓冲流,读写文件-------

/*
字节缓冲输出流:ufferedOutputStream 基于字节流对象,创建一个缓冲区,将件多次写入缓冲区中,然后利用字节流对象调用底层对象方法写入字节,不必每个字节调用底层的方法,提高效率字节缓冲输入流:BufferedInputStream 基于字节流对象,创建一个缓冲区数组,一次性多读多个字节,读取效率高。*/public class BetyBuffStreamDemo {public static void main(String[] args) throws IOException {long start = System.currentTimeMillis();//申明文件路径String srcPath = "JavaOfBase\\src\\OneStage\\OneStageG\\IObetyBuff\\jdk9.CHM";String decPath="JavaOfBase\\src\\OneStage\\OneStageF\\jdk9.CHM";//创建文件对象File srcFile = new File(srcPath);File decFile = new File(decPath);//创建文件流对象FileInputStream srcInputStream = new FileInputStream(srcFile);FileOutputStream decOutputStream = new FileOutputStream(decFile);//创建字节缓冲流对象BufferedInputStream srcBuffInputStream = new BufferedInputStream(srcInputStream);BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(decOutputStream);//定义一个数组大小 缓冲区大小byte[] bys = new byte[1024];//定义一个读写数据结尾的标记int flagLen;//边读数据,边写数据while ((flagLen=srcBuffInputStream.read(bys,0,bys.length))!=-1){decOutputStream.write(bys,0,bys.length);}//关闭字节缓冲流srcBuffInputStream.close();bufferedOutputStream.close();long end = System.currentTimeMillis();System.out.println(end - start);}
}

字节流相关操作,基本字节流的Copy文件相关推荐

  1. 50.逻辑卷管理5,文件系统相关操作,创建挂载文件系统,扩容文件

    文件系统相关操作 创建文件系统 格式化 逻辑卷textlv创建好之后,就可以在上面创建文件系统,以ext4文件系统为例,应该注意的是逻辑卷的引用需要逻辑卷的设备文件,逻辑卷的设备文件有两种书写方式 以 ...

  2. java基础—IO流——字节流的操作演示

    字节流的操作演示 1.将一个文本通过字符流操作复制到指定目录下 2.将一个文本通过字节流操作复制到指定目录下 3.将一个Mp3文件通过字节流操作方式复制到指定目录下,并加入缓冲技术 4.简写复制Mp3 ...

  3. JavaIO操作(1)字节流和字符流-1

    3.2.字节流和字符流(核心) 使用File类执行的所有操作都是针对于文件本身,但是却没有针对于文件的内容,而要进行文件内容操作就需要通过Java之中提供的两组类完成: · 字节操作流(是在JDK 1 ...

  4. R语言七天入门教程六:文件相关操作

    R语言七天入门教程六:文件相关操作 一.文件的读写 R 语言作为统计学编程语言,常常需要处理大量数据,而这些数据通常会从文件中进行读取,因此文件读写在R语言中是非常重要的操作.在R语言中,用到最多的文 ...

  5. 字节流与字符流的详解,文件流,数据流

    首先看一下File类的常用方法 •File类的对象不但可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录: •当创建一个文件对象后,就可以利用它来对文件或目录的属性进行操作 ...

  6. python的txt、csv、ini、xml、excel文件相关操作

    python的txt.csv.ini.xml.excel文件相关操作 函数,一个用于专门实现某个功能的代码块(可重用) 内置函数 len.bin.oct.hex 等 自定义函数 # 定义了一个函数,功 ...

  7. linux修改定时后如何保存文件夹,linux定时任务的一些相关操作汇总

    本人搜罗各大网站并测试了相关定时任务的操作方便大家进行查阅和操作. 1.cron介绍 我们经常使用的是 crontab 命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我 ...

  8. Linux命令(1)—— ls、pwd、tree、clear、文件相关操作

    ls命令 查看当前目录信息 注意:ls后面可以跟几个选项 -l 是以列表方式显示,-h,可以显示文件大小,单位是字节,-a显示隐藏的文件或者目录,也可以三者任意组合连用 pwd 当前目录所在路径 tr ...

  9. python对文件的相关操作

    python对文件的相关操作 保存图片 打开文件夹 选择文件打开 后续 保存图片 import cv2 cv2.imwrite('D:\\1.png', img_s) # img是你要保存的图片 打开 ...

最新文章

  1. DIP第四章习题解答
  2. Gradle 学习二
  3. C#规范整理·语言要素
  4. zabbix3.2学习笔记(二):服务端安装
  5. php外卖系统源码单店,网上订餐系统 v3.1 单店版
  6. ZZULIOJ 计算两点间的距离(多实例测试)
  7. 第 1 章 Readme
  8. angular 点菜_JavaScript实现的select点菜功能示例
  9. Process Explorer 进程管理及排错利器(上)
  10. 《自己动手写网络爬虫》笔记4-带偏好的网络爬虫
  11. java中ant_java ant使用详解
  12. < 数据结构 > 树与二叉树
  13. 板线分离嵌入式RFID读卡模块NFC读写模块HX880系列的应用案例
  14. Coding and Paper Letter(五十)
  15. 自学python怎么找工作-我是如何在自学编程9个月后找到工作的
  16. 华为NE5000E集群路由器荣获InfoVision奖
  17. 京东1.8联合会员腾讯视频QQ音乐转手教程 京东app换绑
  18. c语言中girth的作用,C++初级问题,急救中!!!
  19. GridView 72般绝技 转自清清月儿收藏
  20. 2022 Jiangsu Collegiate Programming Contest I. Cutting Suffix

热门文章

  1. 该!这个电视频道违规播出非法集资广告 被停播30天
  2. 首次击败美国!2019《财富》世界500强公布:129家中国公司上榜
  3. 今天起高考能查分了!这种方式超方便的
  4. 关于Linux内核的一些问题
  5. python对csv文件中的数据进行分类_使用Python读取csv文件并进行分类存储
  6. python 移动平均值_python - 如何使用NumPy计算移动平均值? - 堆栈内存溢出
  7. 80-600-020-原理-存储引擎-简介
  8. 50-000-040-配置-MAC 安装MySQL my.cnf配置文件
  9. 95-40-120-java.util.concurrent-线程-AbstractEventExecutor
  10. 【高并发】ThreadLocal、InheritableThreadLocal