当前位置: 首页 > news >正文

第十五章:输入输出流I/O


15.1:输入/输出流

文件类:File

字节流:InputStream:入 OutputStream:出

字符流:Reader:入 Writer:出

15.1.1 输入流

InputStream类是字节输入流的抽象类,所有字节流的父类。该类中所有方法遇到错误会引发IOException异常。

该类中有一些方法

read()

read(byte[] b)

mark(int readlimit)

reset()

skip()

15.1.2 输出流

15.2 File类

操作:创建或者删除

状态:文件是否存在或者隐藏

创建文件对象

new File(String Pathnname)

File file = new File(“d:/1.txt”)

new File(String parent,String child)

new  File(File parent,String child) 

15.2.1:文件的创建与删除

package fifteenth;
 
import java.io.File;
 
public class FileTest {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File file = new File("D:\\word.text");//创建文件对象
        if(file.exists()) {//exists:存在
            file.delete();//如果该文件存在
            System.out.println("文件已删除");//将该文件删除
            
        }else {//如果文件不存在
            try {
                file.createNewFile();//try语句捕捉可能出现的异常
                System.out.println("文件已创建");//创建该文件
                
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
 
}
//例题15.1

15.2.2:获取文件信息

package fifteenth;
 
import java.io.File;
 
public class FileTest {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File file = new File("D:\\word.text");//创建文件对象,两个斜杠是转义字符
        if(file.exists()) {//exists:存在
            String name = file.getName();//获取文件名称
            long length = file.length();//获取文件长度
            boolean hidden = file.isHidden();//判断文件是否隐藏
            file.delete();//如果该文件存在
            System.out.println("文件已删除");//将该文件删除
            System.out.println("文件名称:"+name);
            System.out.println("文件长度是:"+length);
            System.out.println("该文件是隐藏文件吗?"+hidden);
            
        }else {//如果文件不存在
            try {
                file.createNewFile();//try语句捕捉可能出现的异常:各种问题,处理或者抛出
                System.out.println("文件已创建");//创建该文件
                
            }catch(Exception e){
                e.printStackTrace();
            }
            System.out.println("该文件不存在");
        }
    }
 
}
//例题15.2

递归算法

package fifteenth;
 
import java.io.File;
 
public class File1 {
    public static void main(String[] args) {
        
        File file = new File("D:\\xinli");
        printAllFiles(file);
                
    }
//在方法里再次调用方法,递归算法
    private static void printAllFiles(File file) {
        // TODO Auto-generated method stub
        File[] files = file.listFiles();
        for( File f: files) {
            if(f.isDirectory()){
                printAllFiles(f);
            }else {
                System.out.println(f.getName());
            }
        }
        
    }
}

文件夹加持代码效果

15.3:文件输入/输出流

15.3.1:FileInputStream与FileOutputStream(字节流)

package fifteenth;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
 
public class FileSteamDemo { // 创建类
    public static void main(String[] args) { // 主方法
        File file = new File("D:\\word.txt"); // 创建文件对象
        try { // 捕捉异常
            FileOutputStream out = new FileOutputStream(file); // 创建FileOutputStream对象
            byte buy[] = "我有一只小毛驴,我从来也不骑。".getBytes(); // 创建byte型数组
            out.write(buy); // 将数组中的信息写入到文件中
            out.close(); // 将流关闭
        } catch (Exception e) { // catch语句处理异常信息
            e.printStackTrace(); // 输出异常信息
        }
        try {
            // 创建FileInputStream类对象
            FileInputStream in = new FileInputStream(file);
            byte byt[] = new byte[1024]; // 创建byte数组
            int len = in.read(byt); // 从文件中读取信息
            System.out.println("文件中的信息是:" + new String(byt, 0, len));// 将文件中的信息输出
            in.close(); // 关闭流
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
//例题15.3

package fifteenth;
 
 
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
 
public class FileReaderDemo {
    public static void main(String[] args) {
        File file = new File("D:\\word.txt"); // 创建文件对象
        try { 
            FileWriter fw = new FileWriter(file); // 创建字符输出流
            String word = "明月几时有,把酒问青天。"; // 写入的字符串
            fw.write(word); // 将字符串写入到文件中
            fw.close(); // 关闭流
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            FileReader fr = new FileReader(file);// 创建字符输入流
            char ch[] = new char[1024]; // 缓存字符数组
            int len = fr.read(ch); // 将文件中的字符读入到缓存数组中
            System.out.println("文件中的信息是:" + new String(ch, 0, len));// 将字符转为字符串输出
            fr.close(); // 关闭流
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}//例题15.4

FileOutputStream

package fifteenth;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;//导入需要的类
 
public class FileStreamDemo {
    //写入文件内容,读出来内容
    public static void main(String[] args) throws IOException {
        File file = new File("D:\\word.txt");//获取文件
        FileOutputStream out = new FileOutputStream(file);//对于程序来说是输出
        byte[] by = "hello world".getBytes();//创建byte类型的字节类型数组,输入想要的文字或字符
        out.write(by);//调用方法,输入
        out.close();//关闭输出流,不然会一直占用空间
                
        // TODO Auto-generated method stub
 
    }
 
}

此代码在控制台不会显示

在文件内显示

FileInputStream 

package fifteenth;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;//导入需要的类
 
public class FileStreamDemo {
    //写入文件内容,读出来内容
    public static void main(String[] args) throws IOException {
        File file = new File("D:\\word.txt");//获取文件
        //字节流输出,在文件内显示
        FileOutputStream out = new FileOutputStream(file);//对于程序来说是输出
        byte[] by = "hello world".getBytes();//创建byte类型的字节类型数组,输入想要的文字或字符
        out.write(by);//调用方法,输入
        out.close();//关闭输出流,不然会一直占用空间
        //字节流输入,在控制台显示
        FileInputStream in = new FileInputStream(file);
        byte[] by1 = new byte[1024];//1024字节太长,解决方法是指定长度读取并打印
        int len  =    in.read(by1);
        System.out.print(new String(by1,0,len));//0和len指代从0号位置开始读取到len位置结束
        in.close();//关闭
 
    }
 
}

15.3.2:FileReader和FileWriter

 FileReader

package fifteenth;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
 
public class FileReaderDemo {
 
    public static void main(String[] args) throws Exception {
        // FileWriter输出 和 输入
        File file = new File("D:\\word.txt");//获取文件
        //字符流输出,在文件内显示
        FileWriter writer = new FileWriter(file);//对于程序来说是输出
        char[] ch = new char [] {'z','h'};//创建char类型的字节类型数组,输入想要的文字或字符
        writer.write(ch);//调用方法,输入
        writer.close();//关闭输出流,不然会一直占用空间
        //字符流输入,在控制台显示
        FileReader reader = new FileReader(file);
        char[] ch1 = new char[1024];//1024字节太长,解决方法是指定长度读取并打印
        int len  =    reader.read(ch1);//读出
        System.out.print(new String(ch1,0,len));//0和len指代从0号位置开始读取到len位置结束
        reader.close();//关闭
 
    }
 
}

FileWriter

package fifteenth;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
 
public class FileReaderDemo {
 
    public static void main(String[] args) throws Exception {
        // FileWriter输出 和 输入
        File file = new File("D:\\word.txt");//获取文件
        //字符流输出,在文件内显示
        FileWriter writer = new FileWriter(file);//对于程序来说是输出
        char[] ch = new char [] {'z','h'};//创建char类型的字节类型数组,输入想要的文字或字符
        writer.write(ch);//调用方法,输入
        writer.close();//关闭输出流,不然会一直占用空间
        //字符流输入,在控制台显示
        FileReader reader = new FileReader(file);
        char[] ch1 = new char[1024];//1024字节太长,解决方法是指定长度读取并打印
        int len  =    reader.read(ch1);//读出
        System.out.print(new String(ch1,0,len));//0和len指代从0号位置开始读取到len位置结束
        reader.close();//关闭
 
    }
 
}

15.4:带缓存的输入/输出流

普通流转换为带缓存的流

15.4.1 BufferedInputStream和BufferedOutStream

15.4.2:BufferedWriter和BufferedReader

package fifteenth;
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
 
public class BufferedDemo {
    public static void main(String args[]) {
        String content[] = { "好久不见", "最近好吗", "常联系" };// 写入的内容
        File file = new File("D:\\word.txt"); // 创建文件对象
        try {
            FileWriter fw = new FileWriter(file); // 文件字符输出流
            BufferedWriter bw = new BufferedWriter(fw); // 换成输出流
            for (int k = 0; k < content.length; k++) { // 遍历要输入的内容
                bw.write(content[k]); // 写入字符串
                bw.newLine(); // 写入一个换行符
            }
            bw.close(); // 关闭缓冲输出流
            fw.close(); // 关闭文件字符输出流
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            FileReader fr = new FileReader(file); // 文件字符输入流
            BufferedReader br = new BufferedReader(fr);// 缓冲输入流
            String tmp = null; // 作为缓冲的临时字符串
            int i = 1; // 行数
            // 从文件中读出一行,如果读出的内容不为null,则进入循环
            while ((tmp = br.readLine()) != null) {
                System.out.println("第" + i + "行:" + tmp); // 输出读取的内容
                i++; // 行数递增
            }
            br.close(); // 关闭缓冲输入流
            fr.close(); // 关闭文件字符输入流
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}//例题15.5

//普通流

FileWriter writer = new FileWriter(file);

writer.write("门前大桥下,游过一群鸭");//调用方法,输入

writer.write("快来快来数一数,二四六七八");

writer.write("咕嘎咕嘎,真呀真多呀");

writer.write("数不清到底多少鸭");

//带缓存的流

BufferedWriter bw = new BufferedWriter(writer);

bw.write("门前大桥下,游过一群鸭");//调用方法,输入

bw.newLine();

bw.write("快来快来数一数,二四六七八");

bw.newLine();

bw.write("咕嘎咕嘎,真呀真多呀");

bw.newLine();

bw.write("数不清到底多少鸭");

bw.close();

缓存代码输出

package fifteenth;
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
 
public class FileReaderDemo {
 
    public static void main(String[] args) throws Exception {
        // FileWriter输出 和 输入
        File file = new File("D:\\word.txt");//获取文件
        //缓存输出,在文件内显示
        FileWriter writer = new FileWriter(file);//对于程序来说是输出
        //缓存写入,将普通流转换为待缓存的流,进行换行操作
        BufferedWriter bw = new BufferedWriter(writer);//传入普通流
        //char[] ch = new char [] {'z','h'};创建char类型的字节类型数组,输入想要的文字或字符
    //可以传入字符串
        bw.write("门前大桥下,游过一群鸭");//调用方法,输入
        bw.newLine();
        bw.write("快来快来数一数,二四六七八");
        bw.newLine();
        bw.write("咕嘎咕嘎,真呀真多呀");
        bw.newLine();
        bw.write("数不清到底多少鸭");
        bw.close();
        writer.close();//关闭输出流,不然会一直占用空间
        //缓存输入,在控制台显示
    FileReader reader = new FileReader(file);
    BufferedReader br = new BufferedReader(reader);
      String s1  =    br.readLine();
      System.out.println("第一行:"+s1);
      System.out.println("第二行:"+br.readLine());
      System.out.println("第三行:"+br.readLine());
      System.out.println("第四行:"+br.readLine());
        reader.close();//关闭
 
    }
 
}

15.5:数据输入/输出流

package fifteenth;
 
    import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
 
    public class DataStreamDemo {
        public static void main(String[] args) throws IOException {
            //输入文件里面
    File file = new File("D:\\word.txt");
    FileOutputStream isr = new FileOutputStream("gbk"); 
    DataOutputStream zhw = new DataOutputStream(isr);
    FileOutputStream fos = new FileOutputStream(file);//先拿到普通字节流,传入参数告诉他往哪里输出
    DataOutputStream dos = new DataOutputStream(fos);//转化数据流
    dos.writeBoolean(false);
    dos.writeUTF("你好世界");//好处是规定类型,text编码集相同就可以显示
    dos.writeDouble(88.88);//坏处无法看懂,存入是可以的
    dos.close();
    fos.close();//乱码
    isr.close();
    zhw.close();
    //输出控制台里面
    FileInputStream fis = new FileInputStream(file);
    DataInputStream dis = new DataInputStream(fis);
    System.out.println(dis.readBoolean());
    System.out.println(dis.readUTF());//utf可以读出
    System.out.println(dis.readDouble());//read方法无法读出chars
    dis.close();
    fis.close();
    }
 
}

在此次代码内,代码具有两面性,如果txt文本的编码集和utf编码集适配,就会被写入文件

package fifteenth;
 
import java.io.*;
 
public class DateSteamDemo {
    public static void main(String[] args) {
        File file = new File("D:\\word.txt");
        try {
            // 创建FileOutputStream对象,指定要向其中写入数据的文件
            FileOutputStream fos = new FileOutputStream(file);
            // 创建DataOutputStream对象,用来向文件中写入数据
            DataOutputStream dos = new DataOutputStream(fos);
            dos.writeUTF("使用writeUTF()方法写入数据"); // 将字符串写入文件
            dos.writeDouble(19.8); // 将double数据写入文件
            dos.writeInt(298); // 将int数据写入文件
            dos.writeBoolean(true); // 将boolean数据写入文件
            dos.close();
            fos.close();
 
            // 创建FileInputStream对象,指定要从中读取数据的文件
            FileInputStream fis = new FileInputStream(file);
            // 创建DataInputStream对象,用来从文件中读取文件
            DataInputStream dis = new DataInputStream(fis);
            // 读取字符串
            System.out.println("readUTF方法读取数据:" + dis.readUTF());
            // 读取double数据
            System.out.println("readDouble方法读取数据:" + dis.readDouble());
            // 读取int数据
            System.out.println("readInt方法读取数据:" + dis.readInt());
            // 读取boolean数据
            System.out.println("readBoolean方法读取数据:" + dis.readBoolean());
            dis.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
//例题15.6


 

相关文章:

第十五章:输入输出流I/O

15.1&#xff1a;输入/输出流 文件类&#xff1a;File 字节流&#xff1a;InputStream&#xff1a;入 OutputStream&#xff1a;出 字符流&#xff1a;Reader&#xff1a;入 Writer&#xff1a;出 15.1.1 输入流 InputStream类是字节输入流的抽象类&#xff0c;所有字节流…...

docker命令实例(举例子学习)

docker命令实例 实例1 docker build -t linksoul/chinese-llama2-chat .实例2 docker run --gpus all --ipchost --ulimit memlock-1 --ulimit stack67108864 --rm -it -v pwd/LinkSoul:/app/LinkSoul -p 7860:7860 linksoul/chinese-llama2-chat实例3 docker run -it -p 78…...

excel常用函数

vlookup函数 ISNA函数 ISNA(value) ISNA 函数用于检查指定的值是否为 #N/A 错误值&#xff0c;并返回 TRUE 或 FALSE。 IF 函数 IF(条件, 如果条件为TRUE的值, 如果条件为FALSE的值)...

使用Portainer图形化工具轻松管理远程Docker环境并实现远程访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 Portainer 是一个轻量级的容器管理工具&#xff0c;可以通过 Web 界面对 Docker 容器进行管理和监控。它提供了可…...

Git快速安装【附安装包资源】

软件安装包 项目版本管理软件 Git windows版本安装包 安装步骤 双击按照包之后&#xff0c;直接next 安装位置尽量不要选择C盘&#xff0c;如果只有C盘&#xff0c;可以尝试分盘&#xff0c;如果C盘已经很小了&#xff0c;那就没办法了 选择完安装位置之后&#xff0c;直…...

算法进修Day-33

算法进修Day-33 65. 有效数字 难度&#xff1a;困难 题目要求 有效数字&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a; 一个 小数 或者 整数&#xff08;可选&#xff09;一个 e 或 E &#xff0c;后面跟着一个 整数 小数&#xff08;按顺序&#xff09;…...

开发工具分享 - Mybatis SQL日志格式化H5

目录 一、 序言二、代码示例三、部署至Nginx 一、 序言 平时通过IDEA开发&#xff0c;可以直接装相关MybatisLogFormat的插件直接对控制台里的Mybatis SQL日志进行格式化。一旦离开本地环境&#xff0c;到了测试或者线上&#xff0c;就得自己手动拼参数了。 简单的SQL还好&am…...

好用的办公软件有哪些

日常的工作难免和各种各样的软件打交道&#xff0c;除了传统的Office三件套&#xff0c;小编日常还在用着其他的办公软件&#xff0c;借此跟各位分享其中比较好用、堪称办公神器的8款软件&#xff01; 1.WPS office 2.office2007 3.EasyConnect 4.ToDesk 5.Photoshop 6.A…...

C#中Abstract、Virtual和Override的使用方法

在C#中&#xff0c;abstract、virtual和override是用于处理类和方法的三个重要关键字&#xff0c;它们的用途和用法如下&#xff1a; Abstract&#xff08;抽象&#xff09; 抽象方法是一种只有声明而没有实现的方法。抽象方法只定义了方法的名称、返回类型和参数列表&#x…...

mac电脑安装雷蛇管理软件,实现调整鼠标dpi,移动速度,灯光等

雷蛇官网只给了win版本驱动 mac版本驱动到这里下载: GitHub - 1kc/razer-macos: Color effects manager for Razer devices for macOS. Supports High Sierra (10.13) to Monterey (12.0). Made by the community, based on openrazer. 安装后会显示开发者不明,请丢弃到垃圾桶.…...

Oracle 19c OCM讲义课程:应用SQL执行计划基线的案例

使用SQL执行计划基线可以保证SQL的性能不下降&#xff0c;但实际生产中默认没有开启&#xff0c;这里是姚远老师在给OCM的学员授课中关于SQL执行计划基线的一个案例&#xff0c;大家可以借鉴一下。 关于号主&#xff0c;姚远&#xff1a; Oracle ACE&#xff08;Oracle和MyS…...

什么是 EDI 857?

EDI 857 的中文含义是装运和账单通知&#xff0c;主要用于供应商传递装运信息和提供采购发票。一个 EDI 857 需要包含与某个具体订单相关联的必要的装运和发票信息&#xff0c;主要包含的业务信息如下&#xff1a; 采购订单编号供应商和买方联系信息产品数量、价格以及诸如 UP…...

OJ项目【登录】——验证码、失败登录多次账户冻结、用户密码加密,我是如何实现的?

目录 前言 1、验证码 1.1、引入pom 1.2、前端核心代码 1.3、后端核心代码 2、账户冻结 2.1、思路&#xff1a; 2.2、核心代码示例&#xff1a; 3、密码加密——加盐算法 3.1、思路&#xff1a; 3.2、代码实现示例&#xff1a; 4、小结&#xff1a;展示我的项目 4…...

js鼠标点击添加图标并获取图标的坐标值

给这个图片添加摄像头图标&#xff0c;并获取图标的坐标值&#xff0c;也就是图标的css样式是positon:absolute,获取left和top的值。 图片1 思路是这样的&#xff0c;获取这里的长度&#xff0c; 图片2 1.鼠标点击时距浏览器的左边距离和上边距离&#xff0c;相当于(0,0)坐标 …...

How to add a jar to a project in eclipse?

Project -> Properties -> Java Build Path -> Libraries -> Add External JARs...

动手实现H5仿原生app前进后退切换效果

动手实现H5仿原生app前进后退切换效果 前言 最近在优化H5页面&#xff0c;我注意到当开发完成的移动端H5页面嵌入到微信小程序或者原生app中时&#xff0c;当触发页面路由切换会与原生app看上去有点格格不入&#xff0c;因为H5页面<router-view>切换路由时是直接替换了…...

【标准化封装 SOT系列 】 D SOT-323 SOT-363

〇、关键词 SC70 。 一、D部分 SOT-323 SOT-363 这个应该叫SC-70可能更合适&#xff0c;典型特征 pin 间距 0.65mm ; body size 2.0mm1.25mm 这一节很像SOT-23&#xff0c;即A部分&#xff0c;因此也是最容易被混淆的。 二、SC70-3 / -5/ -6 鉴于此&#xff0c;封装最好给…...

软件测试肖sir__python之ui自动化实战和讲解03

python之ui自动化实战和讲解...

Kafka序列化反序列化解析、kafka schema

Kafka序列化反序列化解析、kafka schema。 kafka有自己的rpc协议,即nio bytebuf中的数据格式,详见之前的kafka相关介绍的文章。这里我们来看一下大家常用,有时又疑惑的序列化反序列化,对应rpc协议中的records,kafka叫Serdes,实际上也是字面上的意思serialize and deseri…...

谷歌浏览器中如何审查隐藏的元素

谷歌浏览器中如何审查隐藏的元素 方法1&#xff1a; 打开控制台 先鼠标移上先显示出来 快捷键按 CtrlShiftC&#xff0c;只能简单查看宽高&#xff0c;做不到复杂的的样式查询 方法2&#xff1a; 在控制台输入一个以下代码, 并保留光标在控制台闪烁&#xff0c;鼠标移上去显示…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...