io和File的综合练习:

先来说说字节流和字符流的应用场景
image.png


练习一:

image.png

     /*
       拷贝一个文件夹考虑子文件夹
        */
        //源文件夹路径
        File src = new File("E:\\aaa-FIle学习测试\\bbb");
        //目的文件夹路径
        File dest= new File("E:\\aaa-FIle学习测试\\ccc");

        copy(src,dest);

    }
    public static void copy(File src,File dest) throws IOException {
        //若说目的文件夹不存在,则创建。
        dest.mkdirs();
        //进入源文件夹
        File[] files = src.listFiles();
        //增强for遍历获取其文件和子文件夹
        for (File file : files) {
            //判断文件
            if (file .isFile()){
                //是文件就直接拷贝,拷贝文件使用字节流
                //创建FileInputStream对象,并关联源文件
                FileInputStream fis=new FileInputStream(file);//"E:\\aaa-FIle学习测试\\bbb\\...txt"
                //创建FileOutputStream对象,并关联目的文件                   //file.getName()指文件名,并和目的文件夹拼接
                FileOutputStream fos=new FileOutputStream(new File(dest,file.getName()));//得到"E:\\aaa-FIle学习测试\\ccc\\...txt"
                //读取数据
                byte[]bytes=new byte[1024*1024*5];
                int len;
                while((len= fis.read(bytes))!=-1){
                    fos.write(bytes,0,len);
                }
                fos.close();
                fis.close();
            }else{
                //判断子文件夹,递归             //file.getName()指文件夹名,并和目的文件夹拼接
                copy(file,new File(dest,file.getName()));//第二个参数:"E:\\aaa-FIle学习测试\\ccc\\..."
            }
        }


练习二:

image.png
先了解一个知识:一个数和另一个数异或运算两次会还原
如:
相同是false(0),相异是true(1)

加密操作

 //字节流输入流并关联文件
        FileInputStream  fis=new FileInputStream("..\\ioDemo\\a.txt");

        //字节输出流
        FileOutputStream fos=new FileOutputStream("..\\ioDemo\\b.txt");
        int i;
        while((i= fis.read())!=-1){
            //异或加密
            fos.write(i^10);
        }

        fos.close();
        fis.close();

image.pngimage.png成功加密
解密:

public class Test03 {
    public static void main(String[] args) throws IOException {
        //字节输入流
        FileInputStream  fis=new FileInputStream("..\\ioDemo\\b.txt");

        //字节输出流
        FileOutputStream fos=new FileOutputStream("..\\ioDemo\\c.txt");
        int i;
        while((i=fis.read())!=-1){
           fos.write(i^10);
        };
    }
}

image.pngimage.png成功解密


练习三:

image.png

先写入数据

 //写入
        FileOutputStream fos=new FileOutputStream("..\\ioDemo\\d.txt");
        String str="2-1-9-4-7-8";
        byte[] bytes = str.getBytes();
        fos.write(bytes);


        fos.close();

再提取数据,把数字部分拿出来

         //读取
        FileReader fr = new FileReader("..\\ioDemo\\d.txt");

        //定义集合放数字
        ArrayList<Integer> list = new ArrayList<>();
        int b;//当前获取到的ascii值
        int i = 1;//用来记录当前获取的位置
        while ((b = fr.read()) != -1) {
            //发现规律:分布在奇数的位置1、3、5、7、9
            if (i % 2 != 0) {
                System.out.println((char) b);
                list.add(Character.getNumericValue((char) b));//调用方法变成int类型放入集合,其实这里转为int无意义,
                                                                         //因为放入还是放的字符
            }
            i++;
        }
        System.out.println(list);//[2, 1, 9, 4, 7, 8]

        //使用stream流:升序排序
        List<Integer> sorted = list.stream().sorted().collect(Collectors.toList());
        System.out.println(sorted);//[1, 2, 4, 7, 8, 9]

        //输出
        FileWriter fw = new FileWriter("..\\ioDemo\\d.txt");

        //遍历写入
        for (int j = 0; j < sorted.size(); j++) {
            if (j < sorted.size() - 1) {
                fw.write(sorted.get(j) + "-");
            } else {
                //如果是输出最后一个就不要“-”
                fw.write(sorted.get(j) + "");
            }
        }
        //关流
        fw.close();
        fr.close();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/377686.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis- plus 基本使用

目录 一. 引入依赖 二.定义Mapper 三.常见注解 3.1TableName 3.2.TableId 3.3TableField 3.4常见配置 一. 引入依赖 由于这个starter包含对mybatis的自动装配&#xff0c;因此完全可以替换掉Mybatis的starter。 <dependency><groupId>com.baomidou</gr…

IP地址被攻击?如何有效防范

在当今数字化的世界中&#xff0c;网络攻击是一个不容忽视的威胁&#xff0c;而IP地址是黑客攻击的主要目标之一。一旦IP地址受到攻击&#xff0c;可能导致服务中断、数据泄露以及其他严重后果。本文将探讨IP地址被攻击的常见原因以及如何有效防范这些攻击。 一、IP地址被攻击…

基于ISO13400 (DoIP) 实现车辆刷写

近年来&#xff0c;在整车研发中基于以太网实现车辆高带宽通讯无疑是人们热议的话题。无论是车内基于车载以太网来减少线束成本&#xff0c;实现ADAS、信息娱乐系统等技术&#xff0c;还是基于新的电子电气架构以及远程诊断需求来实现以太网诊断&#xff08;DoIP&#xff09;&a…

2024.2.7日总结(小程序开发4)

页面导航 页面导航是页面之间的相互跳转&#xff1a; <a>链接location.href 小程序中实现页面导航的两种方式&#xff1a; 声明式导航 在页面上声明一个<navigator>导航组件通过点击<navigator>组件实现页面跳转 编程式导航 调用小程序的导航API&…

vue3(笔记)

组合式Api setup-----相当于beforeCreate, create生命周期 reactive–定义状态 对象形式 响应式原理 toRefs— Pinia &#xff08;只有state、getters和actions&#xff09; 更加简洁的语法&#xff0c;完美支持Vue3的Composition api 和 对TypesCcript的完美支持

街头篮球

欢迎来到程序小院 街头篮球 玩法&#xff1a;根据箭头所指方向&#xff0c;点击鼠标左键进行投篮&#xff0c; 投中获得1分&#xff0c;简单、普通、困难关卡&#xff0c;快去投篮吧^^。开始游戏https://www.ormcc.com/play/gameStart/272 html <div id"wrapper"…

unity——ScriptableObject相关知识点【学习笔记/不足之处欢迎斧正/个人复习向/侵删】

一、相关简介 1.ScriptableObject是什么&#xff1a;Unity提供的一个数据存储基类 2.ScriptableObject的好处有哪些&#xff1a;文件配置、数据复用、更好的处理数据带来的多态性为 二、ScriptableObject的创建 1.自定义ScriptableOject数据容器 继承ScriptableObject类 在…

2024/2/7总结

Node.js 什么是node.js node.js是一个基于chrome v8 引擎的 JavaScript 运行环境。 浏览器是JavaScript的前端运行环境node.js是JavaScript的后端运行环境 node.js中无法调用DOM和BOM等浏览器内置API fs模块 是node.js官方提供的、用来操作文件的模块&#xff0c;它提供了一系…

3.1-媒资管理之需求分析+搭建Nacos

文章目录 媒资管理模块1 模块需求分析1.1 模块介绍1.2 业务流程1.2.1 上传图片1.2.2 上传视频1.2.3 处理视频1.2.4 审核媒资 2.2 搭建Nacos2.2.1 服务发现中心2.2.2 配置中心2.2.2.1 配置三要素2.2.2.3配置content-api 2.2.3 公用配置2.2.4 配置优先级2.2.5 导入配置文件2.2.6 …

Java学习笔记------API

API API&#xff08; Application Programming Interface&#xff09;&#xff1a;应用程序编程接口 简单的说&#xff0c;API就是Java里面别人已经写好的东西&#xff0c;不用自己编写&#xff0c;直接使用即可 例如&#xff1a; public static void main&#xff08;Str…

[设计模式Java实现附plantuml源码~行为型]请求的链式处理——职责链模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

C#,栅栏油漆算法(Painting Fence Algorithm)的源代码

1 刷油漆问题 给定一个有n根柱子和k种颜色的围栏&#xff0c;找出油漆围栏的方法&#xff0c;使最多两个相邻的柱子具有相同的颜色。因为答案可以是大的&#xff0c;所以返回10^97的模。 计算结果&#xff1a; 2 栅栏油漆算法的源程序 using System; namespace Legalsoft.Tr…

跨境电商新风潮:充分发挥海外云手机的威力

在互联网行业迅速发展的大环境下&#xff0c;跨境电商、海外社交媒体营销以及游戏产业等重要领域都越来越需要借助海外云手机的协助。 特别是在蓬勃发展的跨境电商领域&#xff0c;像亚马逊、速卖通、eBay等平台&#xff0c;结合社交电商营销和短视频内容成为最有效的流量来源。…

百亿规模京东实时浏览记录系统的设计与实现

百亿规模京东实时浏览记录系统的设计与实现 系统介绍 浏览记录系统主要用来记录京东用户的实时浏览记录&#xff0c;并提供实时查询浏览数据的功能。在线用户访问一次商品详情页&#xff0c;浏览记录系统就会记录用户的一条浏览数据&#xff0c;并针对该浏览数据进行商品维度…

【PyTorch][chapter 15][李宏毅深度学习][Neighbor Embedding-LLE]

前言&#xff1a; 前面讲的都是线性降维&#xff0c;本篇主要讨论一下非线性降维. 流形学习&#xff08;mainfold learning&#xff09;是一类借鉴了拓扑流行概念的降维方法. 如上图,欧式距离上面 A 点跟C点更近&#xff0c;距离B 点较远 但是从图形拓扑结构来看&#xff0c; …

通过Harbor构建docker私服仓库

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器&#xff0c;它扩展了开源的Docker Distribution&#xff0c;通过添加一些企业必需的功能特性&#xff0c;如安全、标识和管理等。Harbor由VMware公司开发并开源&#xff0c;旨在帮助用户迅速搭建一个企业级的Docke…

16:定时器和计数器

定时器和计数器 1、定时器和计数器的介绍2、定时器是如何工作3、寄存器4、51单片机定时器简介&#xff08;数据手册&#xff09;5、定时器中的寄存器&#xff08;数据手册&#xff09;5.1、TCON&#xff08;定时器控制寄存器&#xff09;5.2、TMOD&#xff08;工作模式寄存器&a…

WordPress突然后台无法管理问题

登录WordPress后台管理评论&#xff0c;发现点击编辑、回复均无反应。 尝试清除缓存、关闭CF连接均无效。 查看插件时发现关闭wp-china-yes插件可以解决问题。 后来又测试了下发现加速管理后台这项&#xff0c;在启用时会发生点击无效问题&#xff0c;禁用就好了&#xff0c;不…

Mysql进阶(sql优化和explain关键字)

一、为什么要对SQL进行优化&#xff1f; 由于业务数据量的增多&#xff0c;SQL的执行效率对程序的运行效率影响增大&#xff0c;此时就需要对SQL进行优化。 二、SQL优化的方法 1.查询sql尽量不要使用select * &#xff0c;而是具体字段。 节省资源&#xff0c;减少开销。 …

Flink Format系列(2)-CSV

Flink的csv格式支持读和写csv格式的数据&#xff0c;只需要指定 format csv&#xff0c;下面以kafka为例。 CREATE TABLE user_behavior (user_id BIGINT,item_id BIGINT,category_id BIGINT,behavior STRING,ts TIMESTAMP(3) ) WITH (connector kafka,topic user_behavior…
最新文章