1.将源文件路径下内容拷贝到目的路径文件中

/*** 源文件路径拷贝到目的路径文件中* @param srcFile 源文件* @param desFile 目的文件(目录/文件)*/
public static void copyFile(String srcFile,String desFile){FileInputStream inputStream=null;FileOutputStream outputStream=null;File file1 = new File(desFile);try {inputStream = new FileInputStream(srcFile);outputStream = new FileOutputStream(desFile);byte[] bytes = new byte[100];int len;while((len=inputStream.read(bytes))!=-1){outputStream.write(bytes,0,len);}} catch (IOException e) {e.printStackTrace();} finally {//关闭资源try {if (inputStream != null) {inputStream.close();}if (outputStream != null) {outputStream.close();}} catch (IOException e) {e.printStackTrace();}}
}

运行结果:

2.将数据插入到文件的指定位置

/*** 数据插入到文件的指定位置* @param srcFile 源文件* @param index 源文件内容要插入的位置* @param append 需要插入的内容*/
public static void addContent(String srcFile,int index,String append){try {//将随机访问文件设置为可读可写属性RandomAccessFile accessFile = new RandomAccessFile(srcFile, "rw");//定义临时文件:存储插入位置后的内容String path="C:\\Users\\1\\Desktop\\test.txt";FileOutputStream file = new FileOutputStream(path);FileInputStream file1 = new FileInputStream(path);//将指针偏移至index位置处accessFile.seek(index);//5//确定指针位置System.out.println("偏移后指针位置在"+accessFile.getFilePointer());//将指针后的内容写入file中byte[] bytes = new byte[5];int read = accessFile.read(bytes, 0, 5);System.out.println("临时文件内容为:"+new String(bytes,0,read));file.write(bytes);//重新偏移指针,并添加数据accessFile.seek(index);accessFile.write(append.getBytes());//记录此时指针位置System.out.println("添加数据后指针位置在"+accessFile.getFilePointer());//将file文件内容拼接写入AccessFile中byte[] bytes2 = new byte[14];file1.read(bytes2);accessFile.write(bytes2);//指针回退accessFile.seek(0);byte[] bytes1 = new byte[14];int read1 = accessFile.read(bytes1);System.out.println("插入数据后,文件内容为:");System.out.println(new String(bytes1,0,read1));//helloniceworldfile.close();file1.close();accessFile.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
}

运行结果及文件内容显示:

3.读取文件,求出现次数最少的5组数据

public static void readFile(String path){try {//创建字符输入缓冲流实例FileReader reader = new FileReader(path);BufferedReader br = new BufferedReader(reader);//将数据写入用户空间的缓冲区ArrayList<Integer> arrayList = new ArrayList<>();String str;int i;//向ArrayList中添加数据,添加原则:依次读取每行数据,以","分割while((str=br.readLine())!=null){String[] s=str.split(",");for(i=0;i<s.length;i++) {arrayList.add(Integer.valueOf(s[i]));}}//hashMap统计出现的次数HashMap<Integer, Integer> hashMap = new HashMap<>();Iterator<Integer> iterator = arrayList.iterator();while(iterator.hasNext()){Integer next=iterator.next();if(hashMap.containsKey(next)){hashMap.put(next,hashMap.get(next)+1);}else{hashMap.put(next,1);}}Comparator<Map.Entry<Integer, Integer>> com = new Comparator<Map.Entry<Integer, Integer>>() {//重写compare方法 要求:比较节点value值 从小到大@Overridepublic int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {return o2.getValue() - o1.getValue();}};//将节点放入优先级队列中,获取最小的5个PriorityQueue<Map.Entry<Integer, Integer>> queue = new PriorityQueue<>(5,com);//大根堆Iterator<Map.Entry<Integer, Integer>> iterator1 = hashMap.entrySet().iterator();while(iterator1.hasNext()){Map.Entry<Integer, Integer> entry = iterator1.next();if(queue.size()<5){queue.add(entry);}else{Map.Entry<Integer, Integer> entry1=queue.peek();//取出队顶元素,即队列中的最小值//当前元素value值小于队顶元素if(entry.getValue()<entry1.getValue()){queue.poll();//删除队顶queue.add(entry);//此时entry为queue的队顶元素}}}System.out.println("出现次数最少的5组数据如下");Iterator<Map.Entry<Integer, Integer>> iterator2 = queue.iterator();while(iterator2.hasNext()){Map.Entry <Integer, Integer> entry = iterator2.next();System.out.println(entry.getKey()+":"+entry.getValue());}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
}

运行结果:

IO流 | IO流的应用举例相关推荐

  1. Java笔记整理六(File类,递归,字节流IO,字符流IO,流中的异常处理,属性集Properties,缓冲流,转换流,序列化,打印流)

    1.File类 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 文件和目录路径名的抽象表示 java把文件和文件夹封装位为一个File类,我们可 ...

  2. Java基础19:IO流—缓冲流、转换流、序列化、打印流、压缩流和解压流

    IO流中的一些其他流:缓冲流.转换流.序列化.打印流.压缩流和解压流 1. 缓冲流 IO流除了一些基本的流,还有在此基础上发展出来的一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够 ...

  3. IO流 字符流 字节流 缓冲流 文件的复制

    IO流 IO概述 IO流就是一个管道,是用来在设备之间传输数据 input:相对于内存/程序 往进走输入流 output:相对于内存/程序 往硬盘写入 分类 根据数据进出方式 1.输出流: FileW ...

  4. Java基础学习总结(13)——流IO

    2019独角兽企业重金招聘Python工程师标准>>> 一.JAVA流式输入/输出原理 流是用来读写数据的,java有一个类叫File,它封装的是文件的文件名,只是内存里面的一个对象 ...

  5. Java基础知识强化之IO流笔记41:字符流缓冲流之复制文本文件案例02(使用 [ newLine() / readLine() ] )(重要)...

    1. 使用字符流缓冲流的特殊功能 [ newLine() / readLine() ] 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中  数据源: a.txt -- 读取数据 ...

  6. IO流(IO异常处理方式)

    IO流(IO异常处理方式) 参考文章: (1)IO流(IO异常处理方式) (2)https://www.cnblogs.com/yangyongqian/p/5150838.html 备忘一下.

  7. java 马士兵 io 代码分析_学习笔记-马士兵java- (IO初步)流

    1. Java 流式输入/输出原理: a. 在JAVA程序中,对于数据的输入/输出操作以"流"(stream)方式进行:J2SDK 提供了各种各样的"流"类,用 ...

  8. JAVA语言基础-面向对象(IO:IO字符流、递归)

    2019独角兽企业重金招聘Python工程师标准>>> 21.01_IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先 ...

  9. Java IO: 其他字符流(下)

    转载自   Java IO: 其他字符流(下) 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的PushbackRe ...

  10. 让你的数据和对象有源有出路,一文打尽,Java常用IO流处理流(处理字节流文件流)缓冲流、转换流、对象流等

    文章目录 缓冲流 转换流 标准输入输出流 打印流 数据流 对象流 随机存取文件流 Java NIO 缓冲流 为了提高数据读写的速度,Java API提供了带缓冲功能的流类,在使用这些流类时,会创建一个 ...

最新文章

  1. catkin_make: command not found
  2. 程序员硬核宝典(面试题集、在线免费工具箱)
  3. Boost:系统测试的实例
  4. HashMap是如何工作的
  5. 【HDU - 5456】Matches Puzzle Game(数位dp,思维)
  6. 这几天惨遭Delphi类型转换折磨,请问怎么把double转成int类型
  7. pycharm设置开发模板
  8. JSF MVC 流程
  9. CENTOS 7 YUM 没有可用的软件包 NGINX
  10. 如何在乌版图系统添加拼音输入法!
  11. 折线图_R语言画折线图?
  12. 动态瑜伽 静态瑜伽 初学者_使用计算机视觉对瑜伽姿势进行评分
  13. 联想电脑尺寸在哪里看_联想笔记本电脑型号查看方式、含义介绍【图文教程】...
  14. 【网络编程】【SCTP】SCTP协议介绍,四次握手,三次挥手
  15. JavaScript刷新当前页面的五种方式
  16. PAT 1044 火星数字
  17. 案例:自动复制黏贴bat
  18. 将分开的微服务项目合到一个项目下面
  19. Linux系统之Xinetd服务
  20. Java计算机毕业设计电影票网上订票系统源码+系统+数据库+lw文档

热门文章

  1. Android使用TextToSpeech实现语音播报-及默认不支持中文的方案
  2. 图像生成 - 使用BigGAN在Imagenet数据集上生成高质量图像。
  3. Portapack应用开发教程(十二) SSTV接收机 A
  4. SSTV慢速扫描的几种模式优劣对比
  5. 电阻的基本原理、参数、应用与选型
  6. 二分法查找(C语言)
  7. CopyMemory不同类型数据之间的复制
  8. 进程注入之DLL注入
  9. Oracle删表报错ora00054,Oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT
  10. Tensorflow中实现leakyRelu操作(高效)