文件和IO的核心API

news2024/11/25 16:23:48

操作文件

    public static void main(String[] args) throws IOException {
        //创建一个文件对象,并且指向某个路径
        File file = new File("C:\\Users\\1162\\Desktop\\1.trx");
        //创建文件
        System.out.println(file.exists());
        boolean newFile = file.createNewFile();
        if(newFile){
            System.out.println("文件创建成功");
            System.out.println(file.exists());
        }
        //获取文件的各种元素
        System.out.println("是否为文件类型"+file.isFile());
        System.out.println("文件的长度"+file.length());
        System.out.println("文件的可读权限"+file.canRead());
        System.out.println("文件名"+file.getName());
        System.out.println("文件的绝对路径"+file.getAbsoluteFile());
        //
        System.out.println("文件最后的修改时间"+file.lastModified());
        //时间转换
        Date date = new Date(file.lastModified());//初始化时间
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");//日期格式化
        System.out.println(simpleDateFormat.format(date));
    }

操作目录

 public static void main(String[] args)  {
        //创建目录
        File dir = new File("C:\\Users\\1162\\Desktop\\IOTEST");
        if(!dir.exists()){
            System.out.println("当前目录不存在,执行创建");
            boolean mkdir = dir.mkdir();
            if(mkdir){
                System.out.println("创建目录成功");
            }
        }
        //获取这个目录的一些元数据
        System.out.println(dir.isFile());//是不是文件
        System.out.println(dir.getParent());//获取父路径
        System.out.println(dir.getParentFile());//获取父路径
        //罗列当前目录下的文件内容
        String[] list = dir.list();
        for (String filename:list) {
            System.out.println(filename);
        }
        File[] files = dir.listFiles();
        for (File f : files) {
            System.out.println(f.getName());
        }
    }

过滤符合条件的文件

//实现FilenameFilter接口
public class MyFileNameFilter implements FilenameFilter {
    @Override
    public boolean accept(File dir, String name) {
        if(name.endsWith(".java")){ //是否以.java为结尾
            return true;
        }
        return false;
    }
}
  public static void main(String[] args)  {
        //创建目录
        File dir = new File("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java");
          //只展示".java"结尾的文件
        //传个FilenameFilter类型对象
        System.out.println("过滤后结果");
        String[] filterRes = dir.list(new MyFileNameFilter());
        for(String filename: filterRes){
            System.out.println(filename);
        }
    }

动手练习作业

遍历多层目录文件内容
在这里插入图片描述

public class LX {

    public static void fileRe(File filer){

        if(filer.exists()){//文件是否存在
            File[] list = filer.listFiles();//获取当前目录下所有内容
            for (File f:list) {//遍历内容
                if(f.isFile()){//判断是不是文件
                    System.out.println(f.getName());//打印文件名
                }else {
                    File file1 = new File(f.getParentFile().toString()+"\\"+f.getName());//不是文件就获取文件名全路径,父路径+文件名
                    fileRe(file1);//递归调用继续判断目录
                }
            }
        }
    }

    public static void main(String[] args) {
        File file = new File("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\hello");
       fileRe(file);//传递要遍历的文件目录路径

    }
}

文件字节流

InputStream   字节为单位读取文件
OutputStream  字节为单位写数据到文件

实现图片的拷贝

InputStream 字节为单位读取文件

public class FileInputStreamTest {

    public static void main(String[] args) {
        //1.创建文件对象
        File file = new File("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.png");
        //2.创建一个如此文件的输入流,确定读取哪文件
        FileInputStream  inputStream=null;
        try {
            inputStream=new FileInputStream(file);
            //3.开始读取内容
            //只要没有读到文件末尾,就一直读
            int read;
            while ((read = inputStream.read())!=-1){//判断是否读完
                System.out.println(read);
            }
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            //4.关闭文件流
            if(inputStream != null){
                try {
                    inputStream.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }




    }
}

OutputStream 结合 字节输出流实现图片复制

在这里插入图片描述

public class FileOutputStreamTest {

    public static void main(String[] args) {
        //1.创建文件对象
        File srcFile = new File("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.png");
        //拷贝到的目标位置
        File destFile = new File("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\2.png");

        //2.创建一个如此文件的输入流,确定读取哪文件
        FileInputStream inputStream=null;
        //创建文件输出流确定写到哪个文件
        FileOutputStream fileOutputStream = null;
        try {
            inputStream=new FileInputStream(srcFile);
            fileOutputStream=new FileOutputStream(destFile);
            //3.开始读取内容
            //只要没有读到文件末尾,就一直读
            int read;
            while ((read = inputStream.read())!=-1){//判断是否读完
                fileOutputStream.write(read);//把读到内容进行写
            }
            System.out.println("完成文件的拷贝工作");
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            //4.关闭文件流
            if(fileOutputStream != null){
                try {
                    fileOutputStream.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            if(inputStream != null){
                try {
                    inputStream.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }

    }
}

增加缓存区提高读写内容

适用于大文件一次一次读写
在这里插入图片描述

package bb;

import java.io.*;

public class FileOutputStreamWithBufferTest {

    public static void main(String[] args) {
        //1.创建文件对象
        File srcFile = new File("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.png");
        //拷贝到的目标位置
        File destFile = new File("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\3.png");

        //2.创建一个如此文件的输入流,确定读取哪文件
        FileInputStream inputStream=null;
        //创建文件输出流确定写到哪个文件
        FileOutputStream fileOutputStream = null;


        try {
            inputStream=new FileInputStream(srcFile);
            fileOutputStream=new FileOutputStream(destFile);
            //3.开始读取内容
            //只要没有读到文件末尾,就一直读
            //创建一个字符数组
            byte[] bytes = new byte[1024];//inputStream.available()获取文件的总字节大小
            int read;
            while ((read=inputStream.read(bytes))!=-1){
                inputStream.read(bytes);
                System.out.println(read);
                fileOutputStream.write(bytes,0,read);//从0写到1024,放到bytes
            }

            System.out.println("完成文件的拷贝工作");
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            //4.关闭文件流
            if(fileOutputStream != null){
                try {
                    fileOutputStream.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            if(inputStream != null){
                try {
                    inputStream.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }

    }
}



适用于小文件,太大会数组溢出

public class FileOutputStreamWithBufferTest {

    public static void main(String[] args) {
        //1.创建文件对象
        File srcFile = new File("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.png");
        //拷贝到的目标位置
        File destFile = new File("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\3.png");

        //2.创建一个如此文件的输入流,确定读取哪文件
        FileInputStream inputStream=null;
        //创建文件输出流确定写到哪个文件
        FileOutputStream fileOutputStream = null;


        try {
            inputStream=new FileInputStream(srcFile);
            fileOutputStream=new FileOutputStream(destFile);
            //3.开始读取内容
            //只要没有读到文件末尾,就一直读
            //创建一个字符数组
            byte[] bytes = new byte[inputStream.available()];//inputStream.available()获取文件的总字节大小
            inputStream.read(bytes);//一次性读取
            fileOutputStream.write(bytes);//一次性写进去

            System.out.println("完成文件的拷贝工作");
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            //4.关闭文件流
            if(fileOutputStream != null){
                try {
                    fileOutputStream.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            if(inputStream != null){
                try {
                    inputStream.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }

    }
}

使用自带缓冲区的处理流完成文件的读写

在这里插入图片描述

public class bufferedStream {

    public static void main(String[] args) {
        //1.创建文件对象
        File srcFile = new File("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.png");
        //拷贝到的目标位置
        File destFile = new File("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\4.png");

        //2.创建一个如此文件的输入流,确定读取哪文件
        FileInputStream inputStream=null;
        //创建文件输出流确定写到哪个文件
        FileOutputStream fileOutputStream = null;
        try {
            inputStream=new FileInputStream(srcFile);
            BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
            fileOutputStream=new FileOutputStream(destFile);
            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
            //3.开始读取内容
            //只要没有读到文件末尾,就一直读
            int read;
            while ((read=inputStream.read())!=-1){
                bufferedOutputStream.write(read);
            }

            System.out.println("完成文件的拷贝工作");
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            //4.关闭文件流
            if(fileOutputStream != null){
                try {
                    fileOutputStream.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            //4.关闭文件流
            if(inputStream != null){
                try {
                    inputStream.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }

    }
}

字符流

字节流可以处理所有的文件,包括文本文件,但如果我们想获取其中的文本信息那么需要自己将读取到的字节再转换为字符,就相当麻烦,所以采用字符流可以简化开发;

FileReader读取到文本的内容

 public static void main(String[] args) {
        //创建字符读取刘

        FileReader reader = null;

        try {
            reader=new FileReader("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.txt");
            //开始读文件内容
            int temp;
            while ((temp = reader.read())!=-1){
                System.out.print((char)temp);//输出读取到的内容,转换成字符类型
            }
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            if(reader!=null){
                try {
                    reader.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }

FileWriter实现写文件

public class FileWriterTest {
    public static void main(String[] args) {
        //创建一个字符输出流对象确认要写的文件
        FileWriter writer =null;
        try {
            //不加true进行写东西源文件字符会被覆盖,想向文件追加写字符加个true即可
            writer= new FileWriter("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.txt",true);
            //向文件写内容
            writer.write(97);//写个字符a到文件里
            writer.write("中华");//写字符中华到文件里
            //刷新
            writer.flush();

        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            if(writer!=null){

                try {
                    writer.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }

    }

强化练习

实现字符的拷贝

   public static void main(String[] args) {
        FileReader reader=null;
        FileWriter writer=null;
        try {
            reader=new FileReader("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.txt");
            writer=new FileWriter("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\2.txt");
            int temp;
            while ((temp=reader.read())!=-1){ //读取1.txt内容
                System.out.println((char)temp);
                writer.write(temp);//读到的内容写到2.tex里
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            if(writer!=null) {
                try {
                    writer.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }

            if(reader!=null){
                try {
                    reader.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }

BufferedReader实现逐行读文件

在这里插入图片描述

 public static void main(String[] args) {

        FileReader reader=null;
        BufferedReader bufferedReader=null;
        try {
            reader=new FileReader("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.txt");
           
            //创建BufferedReader对象
            bufferedReader = new BufferedReader(reader);
            //开始逐行读取内容
            String  line;
            while ((line=bufferedReader.readLine())!=null){

                System.out.println((String) line);
            }
        } catch (FileNotFoundException e) {
            //增加日志记录及描述
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            if(bufferedReader != null){
                try {
                    bufferedReader.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            if(reader != null){
                try {
                    reader.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }

    }

BufferedWriter实现写文件

逐行写

在这里插入图片描述

public class BufferedWriter_ {
    public static void main(String[] args){


        //文件写入的路径
        String filePath="C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.txt";
        FileWriter writer = null;
        BufferedWriter buf =null;
        //准备写入的内容
        try {
            writer=new FileWriter(filePath,true);
            buf=new BufferedWriter(writer);
            buf.write("笑霸final");
            buf.newLine();//插入一个换行符;
            buf.write("笑霸final");
            buf.write("笑霸final");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            try {
                buf.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }



    }

}

转换流

在这里插入图片描述

public static void main(String[] args) throws IOException {
        //1.将字节流-----转换-----为字符输入流
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        //读取用户键盘录入的内容
        System.out.println("请说说今天的心情");
        String s = bufferedReader.readLine();
        System.out.println(s);
        while (true){
            System.out.println("有什么事吗");
            s=bufferedReader.readLine();
            if("88".equals(s)){
                break;
            }
            System.out.println(s);
        }
        System.out.println("聊天结束");
    }

对象流

在这里插入图片描述
我们在网络上传输数据时,都会以二进制流的形式进行传输,所以如果我们希望传输的是一个Java对象,则需要经历以下两个步骤:
1,将该对象转换为二进制流
2,接收方再把这个二进制流恢复为Java对象将Java对象转换二进制流称为对象的序列化;将二进制流恢复为Java对象称为对象的反序列化;

操作基本数据类型

0bjectoutputStream 对象—文件/网络 序列化动作
ObjectInputStream 文件/网络—对象 反序列号动作

public class Book implements Serializable {//进行序列化

    public String name;

    public Integer price;

    public Book(){

    }

    public Book(String name,Integer price){
        this.name=name;
        this.price=price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}

进行写到磁盘

 //1.创建对象
        Book book = new Book("小黄书",99);
        //创建对象流对象
        ObjectOutputStream outputStream = null;
        //对象写到磁盘
        try {
            outputStream=new ObjectOutputStream(new FileOutputStream("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.txt"));
            outputStream.writeObject(book);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            try {
                outputStream.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }

磁盘里读取对象

 public static void main(String[] args) throws IOException, ClassNotFoundException {
        //创建对象的输入流
        ObjectInputStream inputStream=null;

        inputStream = new ObjectInputStream(new FileInputStream("C:\\Users\\1162\\Desktop\\IOTEST\\src\\main\\java\\img\\1.txt"));
        //读取文件中的数据并转换为对象
        Object o = inputStream.readObject();
        if(o instanceof Book){//是不是Book类型
            System.out.println((Book)o);
        }else {
            System.out.println("不是Book类型");
        }
        inputStream.close();
    }

序列化隐私设置和序列化ID的作用

在这里插入图片描述

public class Book implements Serializable {

    public String name;

    public transient int price;
    private static final long serialVersionUID = 1l;//这是默认的序列号

注意设置一个自己的序列化ID需要先清空对象磁盘文件内容,重新输出到磁盘文件里,读取磁盘文件对象就发现Book的价格属性就为0了;
序列化ID的作用
这个序列化ID起着关键的作用,它决定着是否能够成功反序列化!简单来说,java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql-InnoDB数据页结构

一、页结构说明 大致分7部分 二、记录在页中的存储 2.1 页面记录内存结构 行格式 存储到 User Records 部分,每当我们插入一条记录,都会从 Free Space 部分申请一个记录大小的空间划分到 User Records 部分 ,用完则申请新的页; …

Vue中使用element-plus中的el-dialog定义弹窗-内部样式修改-v-model实现-demo

效果图 实现代码 <template><el-dialog class"no-code-dialog" v-model"isShow" title"没有收到验证码&#xff1f;"><div class"nocode-body"><div class"tips">请尝试一下操作</div><d…

用香港服务器域名需要备案吗?

​  在选择服务器的时候&#xff0c;很多人会考虑使用香港服务器。香港服务器的一个优势就是不需要备案。不管是虚拟主机还是云主机&#xff0c;无论是个人网站还是商业网站&#xff0c;都不需要进行备案手续。 域名实名认证 虽然不需要备案&#xff0c;但使用香港服务器搭建…

Doris安装及使用

Doris简介 Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库&#xff0c;以极速易用的特点被人们所熟知&#xff0c;仅需亚秒级响应时间即可返回海量数据下的查询结果&#xff0c;不仅可以支持高并发的点查询场景&#xff0c;也能支持高吞吐的复杂分析场景。基于…

怎么做出老板看得懂的财务数据分析报表?

财务数据分析报表的主要作用就是为决策提供必不可少的数据信息&#xff0c;让老板以及管理层在充分了解企业现金流情况、债务能力、还债能力、进账情况等财务信息后&#xff0c;更科学地做出运营管理决策。因此&#xff0c;财务数据分析报表必须做得直观易懂&#xff0c;毕竟不…

Linux监控基础命令

Linux资源监控 一.资源监控常用命令汇总 内存&#xff1a;top、free、vmstat、pmap I/O&#xff1a;vmstat、sar CPU&#xff1a;top、vmstat、mpstat、iostat 二.监控命令 日常检测使用top和free就足够了&#xff0c;如果要对系统进行日常监控可以使用zabbix或者prometh…

微软宣布在 Excel 中使用 Python:结合了 Python 的强大功能和 Excel 的灵活性。

自诞生以来&#xff0c;Microsoft Excel 改变了人们组织、分析和可视化数据的方式&#xff0c;为每天使用它的数百万人提供了决策基础。今天&#xff0c;我们宣布发布 Excel 中的 Python 公共预览版&#xff0c;从而使 Excel 中的分析功能取得重大进展。 Excel 中的 Python 可…

网易2023年Q2财报:营收240亿元,游戏技术跨产业创造数字就业

8月24日&#xff0c;网易发布2023年Q2财报。二季度&#xff0c;网易继续聚焦主营业务&#xff0c;业绩表现稳健&#xff1b;净收入240亿元&#xff0c;非公认会计准则下归属于公司股东的持续经营净利润90亿元&#xff0c;研发投入39亿元&#xff0c;相当于拿出近一半利润投入研…

同城分类信息便民公众号抖音百度支付宝小程序开发

同城分类信息便民公众号抖音百度支付宝小程序开发 用户注册和登录功能&#xff1a;允许用户通过手机号或第三方账号登录&#xff0c;并进行个人信息补充和修改。发布信息功能&#xff1a;用户可以发布需要出售或者需要购买的商品、服务或者其他资源信息&#xff0c;并填写详细…

专访 Hyper Oracle:可编程的 zkOracle 打造未来世界的超算

许多 Web3 应用在实现的过程中&#xff0c;常常会遇到基础设施方面的限制&#xff0c;包括去中心化自动化、预言机、链上信息搜索等问题。绝大部分区块链的中间件网络都是依赖于节点质押来保证节点执行的诚实性&#xff0c;这样的模式会产生诸多衍生问题&#xff0c;例如安全性…

linux centos7 sort命令的学习与训练

sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项&#xff0c;这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上&#xff0c;sort命令可以被认为是一个非常强大的数据管理工具&#xff0c;用来管理内容类似数据库记录的文件。 sort…

Centos7防火墙启动失败问题

下面记录一下防火墙启动失败问题排查和解决的过程。防火墙启动失败的错误信息如下&#xff1a; ERROR: Exception DBusException: org.freedesktop.DBus.Error.AccessDenied: Conn...n file 比较郁闷的地方是之前防火墙是正常启动的&#xff0c;后面不知道服务器修改了什么配置…

[MyBatis系列②]Dao层开发的两种方式

目录 1、传统开发 1.1、代码 1.2、存在的问题 2、代理开发 2.1、开发规范 2.2、代码 ⭐mybatis系列①&#xff1a;增删改查 1、传统开发 传统的mybatis开发中&#xff0c;是在数据访问层实现相应的接口&#xff0c;在实现类中用"命名空间.id"的形式找到对应的映…

ARM汇编【5】:STACK AND FUNCTIONS

在这一部分中&#xff0c;我们将研究称为堆栈的进程的一个特殊内存区域。本章介绍了Stack的用途和相关操作。此外&#xff0c;我们还将介绍ARM中函数的实现、类型和差异。 STACK 一般来说&#xff0c;堆栈是程序/进程中的一个内存区域。这部分内存是在创建进程时分配的。…

《信息安全技术 数据安全风险评估方法》(征求意见稿)解读

8月21日&#xff0c;全国信息安全标准化技术委员会秘书处发布关于征求国家标准《信息安全技术 数据安全风险评估方法》&#xff08;征求意见稿&#xff09;意见的通知&#xff0c;面向社会广泛征求意见。 一、数据安全相关政策法规 此前&#xff0c;国家也发布了多部数据安全相…

dockerfile镜像及Harbor私有仓库搭建的应用

目录 搭建私有仓库harbordockerfile构建镜像1&#xff0c;先创建一个目录2&#xff0c;编写dockerfile3&#xff0c;构建4&#xff0c; 验证镜像5&#xff0c;标记镜像6&#xff0c;上传镜像 搭建私有仓库harbor 首先安装容器编排工具&#xff1a;docker compose 我使用的是离…

企业如何做好实施数字工厂管理系统前的需求分析

随着工业4.0的到来&#xff0c;数字工厂系统解决方案已经成为企业提高生产效率、优化资源配置和提升产品质量的重要工具。在考虑实施数字工厂管理系统之前&#xff0c;企业需要进行详细的需求分析&#xff0c;以确保系统的实施能够真正满足企业的业务需求。本文将探讨企业如何做…

基于Spark框架的新闻推荐系统的设计与实现

1.摘要 离线ALS算法,以及基于内容的推荐算法进行结合.实时计算部分,使用Spark平台上的Spark Streaming流处理技术,处理日志收集框架Flume收集的日志信息. 2.需要的技术 jieba分词工具 LDA分词处理技术 LDA(Latent Dirichlet Allocatio

Java“牵手”天猫店铺所有商品API接口数据,通过店铺ID获取整店商品详情数据,天猫API申请指南

天猫商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。天猫商品详情可以帮助消费者更好的了解宝贝信息&#xff0c;从而做出购买决策。同时&#xff0c;消费者也可以通过商品详情了解其他买家对宝贝的评价&#xf…

一些总结C++(2)

1.windwos 不推荐使用redis 强行使用的话&#xff0c;可以用这个 hiredis-for-windowshttps://gitee.com/yokel007/hiredis-for-windows 使用方法&#xff1a;编译静态库。然后将所有文件作文C 包含目录&#xff0c;静态库作为库目录&#xff0c;然后添加链接。 不要使用wi…