第七天Java基础(File、递归、IO流)

政府科技管理者如何提升科技成果转化项目进场交易的备案效率?.docx 政府科技管理者如何提升科技成果转化项目进场交易的备案效率? 立即下载

1. File类

创建文件、删除文件、获取文件、判断文件、文件遍历、文件大小
file:文件、directory:文件夹/目录、path:路径

1.1 与系统相关的符号

Linux系统和window系统的系统符号不同,所以路径不能写死
1.String a = File.pathSeparator;//分号分隔符
Char a = File.pathSeparatorChar;//
2.String b = File.separator;//正或反斜杠分隔符
Char b = File.separatorChar;//

1.2 绝对路径和相对路径

1.3 File类的构造方法

1.带一个参数的构造方法
File one = new File(String str);//路径
2.带两个参数的构造方法
File one = new File(String fu,String zi);//父子路径拼接
File one = new File(File fu,String zi);//还是父子路径拼接,父类型为File

1.4 File类常用的方法

1.获取的方法
getAbsolutePath();//返回绝对路径不分绝对相对
getPath();//返回路径串,分绝对相对
getName();//文件名或目录名称,
length();//文件长度
2.判断的方法
exists();//判断路径是否存在
isDirectory();//判断路径是否为目录
isFile();//路径是否为文件
3.创建与删除文件
createNewFile();//文件不存在时,创建文件
delete();//删除文件或目录
mkdir();//创建单级文件夹
mkdirs();//创建多级文件夹

1.5 遍历文件夹或目录

file.list();//遍历文件夹中的文件或文件夹,返回String数组
flie.listFiles();//返回的是File类型的数组,把目录中的文件或者文件夹封装为File

2. 递归

1.练习:1加到n的和

public static int sum(int n){
        if(n == 1 ){
            return 1;
        }
        return n+sum(n-1);
    }

2.练习:递归遍历File

//1.结束条件 f 不是文件夹时不在递归
//2.目的 获取下一个文件夹
public static void gerFileAll(File file){
        System.out.println(file.getName());
        File[] files = file.listFiles();//获取该路径下的文件或文件夹
        for (File f : files) {
            if(f.isDirectory()){//如果遍历出来的File中有文件夹
                gerFileAll(f);
            }
            System.out.println(f.getName());
        }
    }

3.练习:搜索文件

public static void gerFileAll(File file){
        File[] files = file.listFiles();
        for (File f : files) {
            if(f.isDirectory()){
                gerFileAll(f);
            }else{
                String name = f.getName();
                boolean b = name.endsWith(".java");//判断是否为.java结尾
                if (b){
                    System.out.println(f.getName());
                }
            }

        }
    }

3. 文件过滤器(FileFilter)

1.两种方式

//使用file.listFiles(new FileFilter() {}
public static void gerFileAll(File file){
        File[] files = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                if(pathname.isDirectory()){
                    return true;
                }
                return pathname.toString().endsWith(".java");
            }
        });
        for (File f : files) {
            if(f.isDirectory()){
                gerFileAll(f);
            }else{
//                String name = f.getName();
//                boolean b = name.endsWith(".java");//判断是否为.java结尾
//                if (b){
//                    System.out.println(f.getName());
//                }
                System.out.println(f);
            }

        }
    }
//使用file.listFiles(new FilenameFilter() {
public static void gerFileAll(File file){
        File[] files = file.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File pathname ,String name) {
                return new File(pathname,name).isDirectory()|| name.endsWith(".java");
            }
        });
        for (File f : files) {
            if(f.isDirectory()){
                gerFileAll(f);
            }else{
//                String name = f.getName();
//                boolean b = name.endsWith(".java");//判断是否为.java结尾
//                if (b){
//                    System.out.println(f.getName());
//                }
                System.out.println(f);
            }

        }
    }
//简化后的代码
//1.
File[] files = file.listFiles((File pathname ,String name) -> new File(pathname,name).isDirectory()|| name.endsWith(".java"));
//2.
File[] files = file.listFiles((File pathname) -> {
                if(pathname.isDirectory()){
                    return true;
                }
                return pathname.toString().endsWith(".java");
        });

4. IO流

4.1四个顶层的父类(InputStream、OutputStream、Reader、Writer)

1.OutputStream类
抽象类、所有
方法:
close();关闭流
flush();
write(byte[]);
子类:
FileOutputStream,把内存中的数据写入到硬盘当中
FileOutputStream(String name);
FileOutputStream(File file);

FileOutputStream(String name,boolean append);//append为追加标识
FileOutputStream(File file,boolean append);//覆盖还是续写

写入数据的目的地,文件路径
构造方法的作用:
创建对象,根据路径创建文件,指向创建好的文件
使用方式:

FileOutputStream fs = new FileOutputStream("D:\\word\\a.txt",true);//追加标识
        byte[] b = "你好".getBytes();
        fs.write(b);
        fs.write("\r\n".getBytes());//换行
        fs.write(b);
        fs.close();

2.InputStream类
子类:
FileInputStream,把硬盘中的数据读取到内存中
使用方式:

public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("D:\\word\\a.txt");
        int read = 0;
        while((read = fis.read())!=-1){
            System.out.println((char)read);
        }
        fis.close();
    }

3.把byte[]转化为String
String的构造方法中提供了该功能
new String(byte[] b);
new String(byte[] b,int offset,int length);
4.读流的控制:

 public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("D:\\word\\a.txt");
        int read = 0;
        byte []b = new byte[2];//每次读取的长度
        while((read = fis.read(b))!=-1){//把长度作为参数传递给read(b)中
        	//结果存在b当中,0代表起始位置,read代表有效字节个数
            System.out.println(new String(b,0,read));
           }
        fis.close();
    }

5.练习文件复制

public static void main(String[] args) throws IOException {
        long l = System.currentTimeMillis();
        //读流
        FileInputStream fis = new FileInputStream("D:\\word\\a\\001.mp3");
        //写流
        FileOutputStream fos = new FileOutputStream("D:\\word\\b\\001.mp3");
        byte []b = new byte[1024];
        int coun = 0;
        while((coun=fis.read(b))!=-1){
            //写流
            fos.write(b);
        }
        fis.close();
        fos.close();
        long l1 = System.currentTimeMillis();
        System.out.println("共耗时:"+(l1-l));
    }

6.字符输入流(Reader)主要解决字节流乱码的麻烦
字符输入流的顶层父类
抽象类
方法:
read();//读取单个字符
read(char[] c);//读取多个字符
close();//关闭流
子类:
FileReader
构造方法:
FileReader(String fileName);//
FileReader(File file);//

public static void main(String[] args) throws IOException {
        FileReader reader = new FileReader("D:\\word\\a\\a.txt");
        int len = 0;
        char[]chars = new char[1024];
        while((len = reader.read(chars))!=-1){
            System.out.print(new String(chars,0,len));
        }

    }

7.字符输出流(Writer)
写的时候时写入到缓存中,在缓存中完成字节转换。

public static void main(String[] args) throws IOException {
        File file = new File("D:\\word\\a\\b.txt");
        file.createNewFile();//创建文件
        FileWriter fw = new FileWriter(file);
        fw.write("你好吗!");//写入到缓存中
        fw.flush();//从缓存中写入到磁盘中
        fw.close();//关闭流
    }

write的四种参数
在这里插入图片描述
9.流的异常处理方式

try{
//可能会出现的异常代码块
}catch(...){...}finally{
//资源释放
}

10.jdk1.7后的特性try(){}
把字符流对象的定义在try()的小括号中

public static void main(String[] args) {
        try(
                FileInputStream fis = new FileInputStream("");
                FileOutputStream fos = new FileOutputStream("");
                ){
            int lan = 0;
            byte b[] = new byte[2];
            while((lan = fis.read(b))!=-1){
                fos.write(b);
            }
        }catch(IOException e){
            System.out.println(e.toString());
        }
    }

5. Properties集合

唯一和IO流结合的集合
可以保存在流中或加载在流中
extend Hashtable集合
键值对默认都是字符串
将集合写入到磁盘中

public static void main(String[] args) throws IOException {
        Properties pp = new Properties();
        pp.setProperty("赵丽颖","十八");
        pp.setProperty("迪丽热巴","二八");
        pp.setProperty("古力娜扎","三八");
        Set<String> strings = pp.stringPropertyNames();
        for (String string : strings) {
            String property = pp.getProperty(string);
            System.out.println(string+":"+property);
        }
        FileWriter fw = new FileWriter("D:\\word\\a\\c.txt");
        pp.store(fw,"注释");//将字符流写入到磁盘中
        fw.close();
    }

把集合从磁盘中读取出来

public static void main(String[] args) throws IOException {
        Properties pp = new Properties();
        FileReader fw = new FileReader("D:\\word\\a\\c.txt");
        pp.load(fw);
        Set<String> strings = pp.stringPropertyNames();
        for (String string : strings) {
            String property = pp.getProperty(string);
            System.out.println(property);
        }
        fw.close();
    }

6. 缓冲流

1.BufferedInputStream类
2.BufferedOutputStream类
3.BufferedWriter类,该类有个独有的方法newLine()表示换行bw.newLine()
等效于bw.write("\r\n");
4.BufferedReader类,该类独有的方法readLine()表示读取一行数据。
四种缓存流的用法类似,下面举一例

public static String PATH = "D:\\word\\a\\001.mp3";
    public static String PATH02 = "D:\\word\\b\\001.mp3";
    public static void main(String[] args) throws IOException {
        long out = System.currentTimeMillis();
        FileInputStream fis = new FileInputStream(PATH);
        FileOutputStream fos = new FileOutputStream(PATH02);
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        BufferedInputStream bis = new BufferedInputStream(fis);
        int len = 0;
        byte[]bytes = new byte[1024];
        while((len = bis.read(bytes))!= -1){
            bos.write(bytes);
        }
        bos.close();
        bis.close();
        long ne = System.currentTimeMillis();
        System.out.println(ne-out);
    }

7.练习

public static void main(String[] args) throws IOException {
        HashMap<String,String> map = new HashMap<>();
        BufferedReader br = new BufferedReader(new FileReader("D:\\word\\a\\a.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\word\\b\\b.txt"));
        String line = null;
        while((line = br.readLine())!=null){
            if(line!=null&&!"".equals(line)){//排除空格和换行
                String[] split = line.split("\\.");
                map.put(split[0],split[1]);
            }
        }
        Set<String> strings = map.keySet();
        for (String string : strings) {
            String s = map.get(string);
            bw.write(string+"."+s);
            bw.newLine();
        }
        br.close();
        bw.close();
    }

7. 转化流

1.OutputStreamWriter类
继承了Writer
写流
把字符转化为字节
可以设置编码格式
构造方法
OutputStreamWriter(OutputStream out);//默认编码
OutputStreamWriter(OutputStream out,String charsetName);//charsetName编码名称
使用方法和BuffOutputStream差不多
2.InputStreamWriter类
3.小练习字符编码转换

public static void main(String[] args) throws IOException {
        InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\word\\a\\gbk.txt"),"GBK");
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:\\word\\a\\UTF8.txt"),"UTF-8");
        int len = 0;
        char[] chars = new char[2];
        while((len = isr.read(chars))!=-1){
            osw.write(chars);
        }
        isr.close();
        osw.close();
    }

8. 序列化流(保存对象的流)

1.ObjectInputStream
需要反序列化的类必须实现Serializable,才能进行序反列化

public static void main(String[] args) throws IOException, ClassNotFoundException {
        File file = new File("D:\\word\\c\\d");
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file+"\\a.txt"));
        Porter porter = (Porter) ois.readObject();
        System.out.println(porter.getName()+":"+porter.getAge());
        ois.close();
    }

2.ObjectOutputStream
需要序列化的类必须实现Serializable,才能进行序列化

public class Porter implements Serializable {
private static final long serialVersionUID = 1L;//自定义的序列号
    private String name;
    private Integer age;
    public Porter(){

写流

public static void main(String[] args) throws IOException{
        File file = new File("D:\\word\\c\\d");
        file.mkdirs();
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file.getAbsoluteFile()+"\\a.txt"));
        Porter porter = new Porter("我的", 15);
        oos.writeObject(porter);
        oos.close();
    }

3.关键字( transient 、static)
当成员变量不想被序列化,可以用transient修饰,变量值不会被保存,和静态的static效果一样,但是没有静态的含义
4.使用数组保存对象进行序列化

public static void main(String[] args) throws IOException, ClassNotFoundException {
        ArrayList<Porter> list = new ArrayList<>();
        File file = new File("D:\\word\\c\\d");
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file+"\\a.txt"));
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file+"\\a.txt"));
        list.add(new Porter("A",15));
        list.add(new Porter("B",16));
        list.add(new Porter("C",17));
        oos.writeObject(list);
        oos.close();
        Object o = ois.readObject();
        ArrayList<Porter> list2 = (ArrayList<Porter>) o;
        for (Porter porter : list2) {
            System.out.println(porter.toString());
        }
        ois.close();
    }

9. 打印流(PrintStream)

1.PrintStream,只打印,不抛异常,特有的方法print()、println(),输出任意类型的值。
2.构造方法:
PrintStream(File file);//输出目的地File
PrintStream(OutputStream out);//输出目的地OutputStream
PrintStream(String fileName);//输出目的地

public static void main(String[] args) throws FileNotFoundException {
        File file = new File("D:\\word\\c\\d");
        PrintStream ps = new PrintStream(file+"\\a.txt");
        ps.write(88);
        ps.close();
    }
科技中介服务机构如何通过智能体技术提升服务效率与专业度?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

相关推荐

产业园区如何高效对接企业技术需求并推动成果转化?观点作者:科易网-国家科技成果转化(厦门)示范基地.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

鸟哥Java学习之IO流

1.输入流和输出流相对于内存设备而言,将外设中数据读入内存为输入,反之为输出 2.字节流的两个顶层父类:InputStream,OutputStream 字符流:Reader,Writer 字符流其实就是字节流读取文字字节数据后,不直接操作而是先查指定的编码表,获取对应文字。再对文字进行操作。 即字节流+编码。 这些体系的子类都以父类名作为后缀,子类名的前缀是该对象的

paomojj1的博客 584

政府科技管理者在推动科技成果转化时,如何高效整合区域创新要素资源?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

五、python file文件操作

file读操作首先我们在本地项目里面创建一个1.txt,你的python脚本要和这个txt文件保持在同一个目录下 我们写入 11 23 aa bb#codecs这个模块主要解决文件乱码问题 import codecs #打开文件需要几步: #1、open文件 #2、文件操作(读或者写) #3、关闭文件 f=codecs.open('1.txt') text = f.read() #将1.t

机器重启员的博客 723

山区道路边坡落石隐患检测数据集VOC+YOLO格式241张1类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

高空作业栏杆检测数据集VOC+YOLO格式230张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

Linux下FILE结构与“File descriptor”的区别

在学习linux,在linux下使用c语言练习系统调用的时候,经常会遇到与文件相关的操作。一般来讲打开一个文件我们会得到这个文件对于的文件描述符fd“file descriptor”;另外在另一些系统调用里我们又常常遇到FILE这个结构。不知道最初是为什么,反正我一直认为这两者是完全一样的东西,FILE只不过是typedef后的int而已。直到有一天上机时遇到了奇怪的问题,才被迫在man中详细读了

tangwing的专栏 5251

ti-cgt-c2000-22.6.0.LTS-windows-x64-installer

ti-cgt-c2000-22.6.0.LTS-windows-x64-installer

Fatal error, can't open config file 'restart'

Fatal error, can’t open config file ‘restart’ 重启redis时报错 ps -ef | grep -i redis kill -9 进程号 在重新配置一下 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf ...

weixin_41158446的博客 2万+

光伏板太阳能板尘土灰尘脏污检测数据集VOC+YOLO格式1006张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

无功优化电网故障下分布式能源系统多目标优化[并网转换器(GCC)](Matlab代码&Simulink实现)

内容概要:本文详细介绍了基于Plecs或Simulink平台构建的全桥LLC谐振变换器仿真模型,重点研究了变频控制与移相混合控制策略下的闭环系统设计与参数优化方法。内容涵盖全桥LLC谐振变换器的工作原理、小信号建模技术(如扩展描述函数EDF)、PID控制器参数整定过程以及软开关实现条件,并通过仿真验证了系统在稳态输出性能、动态响应特性(如启动过程与负载阶跃)和频率调节平滑性等方面的优良表现。同时提供了完整的仿真模型、参数设计报告及说明文档,有助于读者复现结果并深入理解控制机制与建模细节。; 适合人群:具备电力电子、自动控制等相关专业知识背景,从事高效率电源设计、新能源变换系统研发的工程师及高等院校电力电子与电力传动方向的研究生。; 使用场景及目标:①掌握LLC谐振变换器的小信号建模与闭环控制系统设计方法;②学习并应用变频与移相结合控制策略提升电源转换效率;③支撑科研项目中的电力电子系统仿真验证或学位论文课题开发;④复现高水平学术论文中关于谐振变换器的控制方案与性能分析。; 阅读建议:建议结合所提供的仿真模型与参数设计资料,边运行仿真边对照文章内容理解控制逻辑与建模过程,特别关注小信号模型的建立方法与PID控制器参数整定环节,以增强对实际工程问题的分析与设计能力。

java 输入流详解_java输入输出流详解

1.什么是IOJava中I/O操作主要是指使用Java进行输入,输出操作.Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。Java.io是大多数面向数据流的输入/输出类的主要软件包。此外,Java也对块传输提供支持,在核心库 java...

weixin_32506761的博客 6664

两相交错并联Boost电路仿真模型(Simulink仿真实现)

内容概要:本文围绕两相交错并联Boost电路的Simulink仿真模型展开,旨在通过仿真手段深入研究该电路在电力电子系统中的工作特性与性能优势。文章系统阐述了两相交错并联Boost电路的拓扑结构、工作原理及其在提升系统效率、减小输入电流纹波、均衡电流分配方面的显著优势。通过构建完整的Simulink仿真模型,对电路在不同负载与输入条件下的动态响应、稳态性能及控制策略进行了全面分析与验证。重点设计并实现了电压电流双闭环PI控制策略,详细论述了PI控制器的参数整定方法、占空比调节机制以及交错并联所带来的均流效果。仿真结果表明,所构建的模型能够有效提升系统的动态响应速度与稳定性,显著降低输入电流的谐波含量与纹波幅值,验证了交错并联技术在中高功率DC-DC变换应用中的优越性。; 适合人群:具备电力电子技术基础、熟悉Simulink仿真的电气工程及相关专业本科生、研究生,以及从事电源系统设计、新能源变换器研发的工程技术人员。; 使用场景及目标:①学习和掌握交错并联Boost电路的拓扑结构、工作原理与建模方法;②开展电力电子变换器的仿真分析、控制器设计与参数优化;③为实际工程项目中的高性能DC-DC变换器设计,特别是追求低输入纹波和高功率密度的应用场景,提供理论支撑与仿真验证依据。; 阅读建议:建议读者结合Simulink模型文件同步操作,深入理解主电路各模块、双闭环控制结构及PWM调制环节的参数设置与逻辑实现,重点关注PI控制器的参数整定过程与交错控制的时序配合,并可通过调整输入电压、负载大小及控制参数进行对比实验,以深化对交错并联技术优势及其控制策略的理解。

JAVA高级进阶08补充-递归、IO-文件&字节流

标准ASCII字符集ASCII(American Standard Code for Information Interchange): 美国信息交换标准代码,包括了英文、符号等。标准ASCII使用1个字节存储一个字符,首尾是0,总共可表示128个字符,对美国佬来说完全够用。GBK(汉字内码扩展规范,国标)汉字编码字符集,包含了2万多个汉字等字符,GBK中一个中文字符编码成两个字节的形式存储。注意:GBK兼容了ASCII字符集。Unicode字符集(统一码,也叫万国码)

2402_84667776的博客 1355

PHP 对接建行生活订单推送接口

php对接建行订单推送

qq_43647026的博客 562

硬件作品3----STM32F103RCT6最小系统板MCU配置

电路未调试成功,目前刚打板,后续需要补充或者改版另行注明。

weixin_58364194的博客 5567

Java进阶第七天

1、File类 1.1 File类概述 java.io.File类是文件目录和路径的抽象表示,主要用于创建、获取、删除、文件和文件夹,判断文件和文件夹是否存在,遍历文件夹,获取文件大小 file:文件 directory 目录/文件夹 path 路径 成员变量:   static String pathSeparator 与系统有关的路径分隔符   static char pathSeparatorChar 与系统有关的路径分隔符   static String separator 与系统有关的默认名称分隔

Prayer96的博客 266

BLDC方波控制双闭环Simulink仿真模型

无刷直流电机方波控制双闭环Simulink仿真模型搭建详细教程,包括速度PI环、电流PI环、换向逻辑和受控电压源,仿真结果良好。

m0_57458432的博客 6871

从Notebook到生产:构建具备可观测性与自愈能力的ML服务

机器学习模型部署不是简单的API封装,而是将训练好的算法转化为可持续演化的生产服务。其核心在于跨越开发与运维之间的抽象断层,建立可验证的输入契约、状态感知的推理生命周期、细粒度资源隔离及全链路可观测性。关键技术包括Pydantic驱动的强类型输入校验、Kubernetes原生资源限制与OOM防护、Prometheus指标埋点与漂移检测(如KS检验)、结构化日志与请求追踪。这些实践共同支撑起模型在真实业务场景中的稳定性、可诊断性与持续迭代能力,直击‘绿得发亮却默默失效’的线上监控盲区。

weixin_30673611的博客 417

Unity Android构建报错:compileSdk 35兼容性五层定位法

Android构建中的compileSdk是编译时API目标版本,其升级并非孤立操作,而是触发JDK、Android Gradle Plugin(AGP)、NDK、targetSdk与Unity引擎版本之间强耦合校验的起点。当出现'using a newer Android Gradle plugin to use compileSdk = 35'类报错,本质是代际技术栈错配——例如AGP 7.1.3不识别compileSdk 35所需Java 17语法,或NDK 21与AGP 7.4的ABI规范冲突。该问

weixin_32496547的博客 569

英飞凌TC377的Flash管理、UCB配置与HSM安全机制解析

本文深入解析了英飞凌TC377微控制器的Flash存储结构、UCB配置机制与HSM安全模块。详细阐述了带Cache与不带Cache的PFlash地址访问差异、利用SOTA与AB Swap实现无感OTA更新的原理,以及如何通过UCB安全配置启动流程与写保护。重点剖析了HSM硬件安全模块在密钥管理、安全启动与安全OTA中的核心作用,为开发高可靠性嵌入式系统提供实战指南。

weixin_29170327的博客 524
上一篇: 第五天Java基础(异常、线程)
下一篇: 第八天Java基础(网络编程)
RestartJava
博客等级 码龄7年 1粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值