IO流基础总结

2023-11-11

IO流

File

1.File类概述和构造方法

File:它是文件和目录路径名的抽象表示

​ 文件和目录是可以通过File封装成对象的

​ 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名 而已,它可以是存在的,也可以是不存在的,将来是要通过具体的操作把这个路径的内容转化为具体存在的

File类中的构造方法

2.File类的创建功能

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ETG2InXv-1667567975440)(C:\Users\23600\AppData\Roaming\Typora\typora-user-images\image-20211123111332282.png)]

createNewFile():用来创建文件的方法

mkdir():用来创建目录的方法

mkdirs():用来创建多级目录的方法

创建文件的时候不能同名,与文件夹名也不能相同

3.File类判断和获取功能

4.File类删除功能

public boolean delete():删除由此抽象路径名表示的文件或目录

注意:非空目录是无法直接使用delete()直接删除的,需要删除目录下的所有内容才能对该目录进行删除

5.绝对路径和相对路径的区别

绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:"D:\\test\\JavaSE\\java.txt

相对路径:必须使用取自其他路径名的信息进行解释。例如:“JavaSE\\java.txt”

6.递归

递归概述:以编程的角度看,递归指的是方法定义中调用方法本身的现象

递归解决问题的思路

​ 把一个复杂的问题层层转化为一个与原问题相似却规模较小的问题来求解

​ 递归策略只需少量的程序就可以描述过程所需要的多次重复的计算

递归解决问题要找到两个内容

​ 递归出口:否则会出现内存溢出

​ 递归规则:与原问题相似的规模较小的问题

字节流

1.IO流概述和分类

IO流概述

​ IO:输入/输出(Input/Output)

​ 流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备之间的传输成为流,流的本质是数据传输

​ IO流就是用来处理设备间数据传输问题的

​ 常见的应用:文件复制;文件上传;文件下载

IO流分类

​ 按照数据的流向:

​ 输入流:读数据

​ 输出流:写数据

​ 按照数据类型来分:

​ 字节流

​ 字节输入流;字节输出流

​ 字符流

​ 字符输入流;字符输出流

2.字节流写数据

字节流抽象基类

​ InputStream:这个抽象类是表示字节输入流的所有类的超类

​ OutputStream:这个抽象类是表示字节输出流的所有类的超类

​ 其子类名称都是以七父类名作为子类名的后缀

FileOutputStream:文件输出流用于将数据写入File

​ FileOutputStream(String name):创建文件输出流以指定的名称写入文件

FileOutputStream的构造方法:

FileOutputStream的常用方法:

使用字节输出流写数据的步骤

​ 1.创建字节流输出对象(A:创建了指定路径的文件;B:创建了字节输出流对象;C:让字节输出流对象指向创建好的文件)

​ 2.调用数据输出流对象的写数据方法

​ 3.释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源)

3.字节流写数据的三种方式

获取数据的重要方法:byte[ ] getBytes():返回字符串对应的字节数组

4.字节流写数据的两个小问题

​ 1.字节流写数据如何实现换行:

​ Windows换行符是:\r\n

​ Linux是:\n

​ Mac是:\r

​ 2.字节流写数据如何实现追加写入:

​ FileOutputStream(String name, boolean append)方法和FileOutputStream(File file, boolean append)方法能提供追加写入

​ 若第二个参数boolean类型的为true,则进行追加写入操作;若为false,则删除当前的所有内容并重新写入

5.字节流写数据加异常处理

​ finally:在异常处理时提供finally块来执行所有清除操作,比如IO流种的释放资源

​ finally特点:被finally控制的语句一定会被执行,除非JVM退出

6.字节流读数据<1>

​ FileInputStream:从文件系统中的文件获取输入字节

​ FileInputStream(String name):通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统中的路径名name命名

​ 连续使用read方法可以连续对下一个字符进行读取操作

​ 该方法是一次读一个字节

//创建一个读取文件的对象
FileInputStream fIpS = new FileInputStream("D:\\IdeaProjects\\untitled1\\untit__IO\\src\\Day_2\\fIpS_1.txt");

//调用该对象的读取方法
//字节流读数据的标准代码
int read;
while((read = fIpS.read()) != -1) {
    System.out.print((char) read);
}

//关闭此文件输入流并释放与流相关联的任何系统资源
fIpS.close();

7.字节流读数据<2>

​ 使用字符数组的read方法返回的是所读取的字符长度,若read方法没有接收到Byte数组内的元素,返回-1

FileInputStream fIpS = new FileInputStream("D:\\IdeaProjects\\untitled1\\untit__IO\\src\\Day_2\\TEST.txt");

//定义字节数组时,数组长度基本定义为1024及其整数倍
byte []bytes = new byte[1024];
int len;

//使用字符数组的read方法返回的是所读取的字符长度
//使用字符数组的read的典型方法
while ((len = fIpS.read(bytes)) != -1) {
    System.out.print(new String(bytes, 0, len));
}

8.字节缓冲流

​ Class BufferedOutputStream:该类实现缓冲输出流。通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用。

​ 构造方法:BufferedOutputStream(OutputStream out)

​ Class BufferedInputStream:当创建BufferedInputStream时,将创建一个内部缓冲区数组。 当从流中读取或跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次有多个字节。 mark操作会记住输入流中的一点,并且reset操作会导致从最近的mark操作之后读取的所有字节在从包含的输入流中取出新的字节之前重新读取。

​ 构造方法:BufferedInputStream(InputStream in)

字节缓冲流仅仅提供缓冲区,而真正的读写数据还得依靠基本的字节流对象进行操作

//复制视频
public class BufferedStream__1 {
    public static void main(String[] args) throws IOException {
        FileInputStream In = new FileInputStream("D:\\IdeaProjects\\untitled1\\untit__IO\\src\\Day_2\\vdo.mp4");
        FileOutputStream Out = new FileOutputStream("D:\\IdeaProjects\\untitled1\\untit__IO\\src\\Day_2\\vdo_1.mp4");
        BufferedInputStream in = new BufferedInputStream(In);
        BufferedOutputStream out = new BufferedOutputStream(Out);

        byte[] bytes = new byte[1024];
        int len;
        while((len = in.read(bytes)) != -1)
        {
            out.write(bytes, 0, len);
        }
    }
}

字符流

一个汉字的存储:

​ 如果是GBK编码,占用2个字节

​ 如果是UTF-8编码,占用3个字节

1.为什么会出现字符流

字符流 = 字节流 + 编码表

​ 汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数

2.编码表

基础知识

​ 计算机中存储的信息都是用二进制数表示的;我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果

​ 按照某种规则,将字符存储到计算机中,称为编码。反之,将存储在计算机中的二进制数按照某种规则解析出来,称为解码。且按照A编码储存,必须按照A编码解析,这样才能显示正确的文本符号,否则就会出现乱码现象

​ 字符编码:就是一套自然语言的字符与二进制数之间的对应规则

字符集

​ 是一个系统支持的所有字符的集合,包括各个国家的文字、标点符号、图形符号、数字等

​ 计算机要准确的存储和识别各种字符集符号,就需要进行编码,一套字符集必然至少有一套字符编码

​ 常见字符集有:ASCII字符集、GBXXX字符集、Unicode字符集

3.字符串的编码解码问题

​ 编码:

​ byte[ ] getBytes( ):使用平台的默认字符集将该String编码为一系列字节,将结果存储到新的字节数组中

​ byte[ ] getBytes(String charsetName):使用指定的字符集将该String编码为一系列字节,将结果存储到新的字节数组中

​ 解码:

​ String(byte[ ] bytes):通过使用平台的默认字符集解码指定的字节数组来构造新的String

​ String(byte[ ] bytes, String charsetName):通过指定的字符集解码指定的字节数组来构造新的String

4.字符流的编码解码问题

​ 字符流抽象基类:

​ Reader:字符输入流的抽象类

​ Writer:字符输出流的抽象类

字符流中和编码解码问题相关的两个类:

InputStreamReader:InputStreamReader是从字节流到字符流的桥:它读取字节,并使用指定的charset将其解码为字符 。它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。

  • 为了最大的效率,请考虑在BufferedReader中包装一个InputStreamReader。 例如:

      BufferedReader in
       = new BufferedReader(new InputStreamReader(System.in)); 
    

InputStreamReader的构造方法

    • InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader。
      InputStreamReader(InputStream in, Charset cs) 创建一个使用给定字符集的InputStreamReader。

OutputStreamWriter:OutputStreamWriter是字符的桥梁流以字节流:向其写入的字符编码成使用指定的字节charset。它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。

  • 为了最大的效率,请考虑在BufferedWriter中包装一个OutputStreamWriter,以避免频繁的转换器调用。 例如:

      Writer out
      = new BufferedWriter(new OutputStreamWriter(System.out)); 
    

OutputStreamWriter的构造方法

    • OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。
      OutputStreamWriter(OutputStream out, Charset cs) 创建一个使用给定字符集的OutputStreamWriter。

5.字符流写数据的5种方式

6.字符流读数据的2种方式

7.InputStreamReader与OutputStreamWriter的子类

​ InputStreamReader拥有一个子类:FileReader中的构造方法,FileReader(String fileName)可以减少文字的输入量

​ OutputStreamWriter拥有一个子类:FileWriter中的构造方法,FileWriter(String fileName)可以减少文字的输入量

注意:若要实现编码转换问题,还是得需要InputStreamReader与OutputStreamWriter

8.字符缓冲流

BufferedReader:从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。

​ 相关构造方法:

    • BufferedReader(Reader in) 创建使用默认大小的输入缓冲区的缓冲字符输入流。
      BufferedReader(Reader in, int sz) 创建使用指定大小的输入缓冲区的缓冲字符输入流。

BufferedWriter:将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入。

​ 相关构造方法:

    • BufferedWriter(Writer out) 创建使用默认大小的输出缓冲区的缓冲字符输出流。
      BufferedWriter(Writer out, int sz) 创建一个新的缓冲字符输出流,使用给定大小的输出缓冲区。

9.字符缓冲流的特有功能

BufferedWriter

​ void newLine( ):写一行行分隔符,行分隔符字符由系统属性定义;例:如果该电脑系统为Windows则添加一个"\r\n"字符串,Linux则添加"\n"字符串,Mac OS则添加"\r"字符串

BufferedReader

​ public String readLine( ):读一行文字。结果包含行的内容的字符串,不包括任何行终止符。如果流的结尾已经到达,则为null

10.IO流小结

​ **1.字节流:**字节流可以复制任意文件数据,有4种方式一般采用字节缓冲流一次读写一个字节数组的方式:FileInputStream,BufferedInputStream;FileOutputStream,BufferedOutputStream

​ **2.字符流:**字符流只能复制文本数据,有五种方式,一般采用字符缓冲流的特有功能BufferedReader中的String readLine()方法,与BufferedWriter中的void newLine()方法

特殊操作流

1.标准输入输出流

System类中有两个静态的成员变量:

public static final InputStream in:标准输入流。通常该流对应于键盘输入或由主机环境或用户指定的另一个输入源

public static final PrintStream out:标准输出流。通常该流对应于演示输出或由主机环境或用户指定的另一个输出目标

自己实现键盘录入数据:

	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

Java提供的一个类实现了该方法:

​ Scanner sc = new Scanner(System.in);

输出语句的本质是一个标准的输出流

​ PrintStream ps = System.out;

​ PrintStream类有的方法,System.out都可以使用

2.打印流

打印流分类:

​ 字节打印流:PrintStream

​ 字符打印流:PrintWriter

打印流的特点:

​ 只负责输出数据,不负责读取数据

​ 有自己的特有方法print( ),println( )

字节打印流:

​ PrintStream(String fileName):使用指定的文件名创建新的打印流

​ 使用继承父类的方法写数据,查看的时候会转码;使用自己的特有方法写数据,查看的数据原样输出

字符打印流:

​ 字符打印流的构造方法:

3.对象序列化流

对象序列化:就是将对象保存到磁盘中,或者在网络中传输对象

这种机制就是一个字节序列表示一个对象,该字节序列包含:对象的类型、对象的数据和对象中储存的属性等信息

字节序列写到文件之后,相当于文件中持久保存了一个对象的信息;反之,该字节序列还可以从文件中读取出来,重构对象,对它进行反序列化

要实现序列化和反序列化就要使用对象序列化流和对象反序列化流:

​ 对象序列化流:ObjectOutputStream

​ 对象反序列化流:ObjectInputStream

对象序列化流:

  • ObjectOutputStream将Java对象的原始数据类型和图形写入OutputStream。 可以使用ObjectInputStream读取(重构)对象。 可以通过使用流的文件来实现对象的持久存储。 如果流是网络套接字流,则可以在另一个主机上或另一个进程中重构对象。

构造方法:

​ ObjectOutputStream(OutputStream out):创建一个写入指定的OutputStream的ObjectOutputStream

序列化对象的方法:

​ void writeObject(Object obj):将指定的对象写入ObjectOutputStream

注意:

​ 一个对象要想被序列化,该对象所属的类必须实现Serializable接口

​ Serializable是一个标记接口,实现该接口,不需要重写任何方法

4.对象反序列化流

对象反序列化流:ObjectInputStream

ObjectInputStream反序列化先前使用ObjectOutputStream编写的原始数据和对象

构造方法:

​ ObjectInputStream(InputStream in):创建从指定的InputStream读取的ObjectInputStream

反序列化对象的方法:

​ Object readObject( ):从ObjectInputStream读取一个对象

5.关于序列化反序列化的两个问题

用对象序列化流序列化了一个对象后,假如我们修改了对象所属的类文件,读取数据会不会出问题,若出了问题,该如何解决

会出问题,会抛出InvalidClassException异常,该异常是在

  • 当序列化运行时检测到类中的以下问题之一时抛出。
    • 类的串行版本与从流中读取的类描述符的类型不匹配
    • 该类包含未知的数据类型
    • 该类没有可访问的无参数构造函数

​ 为什么会导致类的串行版本与从流中读取的类描述符的类型不匹配

​ 因为序列化运行时将每个可序列化的类与称为serialVersionUID的版本号相关联,该序列号在反序列化期间用于验证序列化对象的发送者和接收者是否已加载与该序列化兼容的对象的类。 如果接收方加载了一个具有不同于相应发件人类的serialVersionUID的对象的类,则反序列化将导致InvalidClassException 。

​ 解决方案:

  • 序列化运行时将每个可序列化的类与称为serialVersionUID的版本号相关联,该序列号在反序列化期间用于验证序列化对象的发送者和接收者是否已加载与该序列化兼容的对象的类。 如果接收方加载了一个具有不同于相应发件人类的serialVersionUID的对象的类,则反序列化将导致InvalidClassException 。 一个可序列化的类可以通过声明一个名为"serialVersionUID"的字段来显式地声明它自己的serialVersionUID,该字段必须是静态的,而且类型为long

  • 就是给对象所属的类添加一个serialVersionUID:

      ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L; 
    

如果一个对象中的某个成员变量的值不想被序列化,该如何实现

​ 使用transient关键字修饰成员变量,被transient关键字修饰的成员变量不参与序列化过程

6.序列化反序列化的相关操作

  • 序列化
public class ObjectOutputStudentStream_1 {
    //注意被序列化的类需要实现一个Serializable的标记接口

    public static void main(String[] args) throws IOException {
        //对象序列化流的构造方法:ObjectOutputStream(OutputStream out)
        ObjectOutputStream obps = new ObjectOutputStream(new FileOutputStream("D:\\IdeaProjects\\untitled1\\untit__IO\\src\\Day_5\\St_oc.txt"));

        //创建Student类的对象
        Student s1 = new Student("Li", 18);

        //将Student对象写入ObjectOutputStream:void writeObject(Object obj)
        obps.writeObject(s1);

        obps.close();
    }
}
  • 反序列化
public class ObjectInputStudentStream_1 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //反序列化流的构造方法:ObjectInputStream(InputStream in)
        ObjectInputStream obis = new ObjectInputStream(new FileInputStream("D:\\IdeaProjects\\untitled1\\untit__IO\\src\\Day_5\\St_oc.txt"));

        //反序列化对象的方法:Object readObject()
        //进行向下转型
        Student s1 = (Student) obis.readObject();

        //调用反序列化后的Student对象
        System.out.println(s1.getName()+", "+s1.getAge());

        obis.close();
    }
}

7.Properties

Properties概述

​ 是一个Map体系的集合类,但不是泛型类

​ Properties可以保存到流中或从流中加载

Properties的特有方法

Properties和IO流结合的方法

8.Properties的具体操作

public class Properties_1 {
    public static void main(String[] args) throws IOException{
        //定义一个将键值对写入Properties列表并写入文件中的方法
        myStore();

        //定义一个将键值对文件读取的列表
        myLoad();
    }

    private static void myStore() throws IOException
    {
        //定义一个Properties列表并添加键值对
        Properties prop = new Properties();
        prop.setProperty("Li", "18");
        prop.setProperty("Mo", "18");
        prop.setProperty("Ja", "19");

        //定义一个字符输出流
        FileWriter writer = new FileWriter("D:\\IdeaProjects\\untitled1\\untit__IO\\src\\Day_5\\prop_1.txt");

        //将键值对写入Properties列表
        prop.store(writer, null);

        writer.close();
    }

    private static void myLoad() throws IOException
    {
        //定义一个Properties列表
        Properties prop = new Properties();

        //定义一个字符输入流
        FileReader reader = new FileReader("D:\\IdeaProjects\\untitled1\\untit__IO\\src\\Day_5\\prop_1.txt");

        //Properties列表从字符输入流读取键值对
        prop.load(reader);

        reader.close();

        //输出Properties列表的内容
        System.out.println(prop);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IO流基础总结 的相关文章

  • 获取文件的锁

    我想在对特定文件开始 threo read 时获取文件上的锁定 以便其他应用程序无法读取已锁定的文件并希望在线程终止时释放锁定文件 您可以获得一个FileLock https docs oracle com javase 8 docs ap
  • Java 7 默认语言环境

    我刚刚安装了 jre7 我很惊讶地发现我的默认区域设置现在是 en US 对于jre6 它是de CH 与jre7有什么不同 默认区域设置不再是操作系统之一吗 顺便说一句 我使用的是Windows7 谢谢你的回答 编辑 我已经看到了语言环境
  • 如何在 Openfire 中使用 smack

    你好 我计划开发一个可以连接到 gtalk facebook 等的聊天客户端 我决定将 smack API 与 openfire 一起使用 但我需要很少的指导来了解如何将它与 openfire 服务器一起使用 openfire 是否提供了基
  • 如何使用 JAVA 代码以编程方式捕获线程转储?

    我想通过 java 代码生成线程转储 我尝试使用 ThreadMXBean 为此 但我没有以正确的格式获得线程转储 因为我们正在使用jstack命令 请任何人提供一些帮助 他们是否有其他方式获取线程转储 使用任何其他 API 我想要的线程转
  • 文本在指定长度后分割,但不要使用 grails 打断单词

    我有一个长字符串 需要将其解析为长度不超过 50 个字符的字符串数组 对我来说 棘手的部分是确保正则表达式找到 50 个字符之前的最后一个空格 以便在字符串之间进行彻底的分隔 因为我不希望单词被切断 public List
  • 在 Struts 2 中传递 URL 参数而不使用查询字符串

    我想使用类似的 URL host ActionName 123 abc 而不是像这样传递查询字符串 host ActionName parm1 123 parm2 abc 我怎样才能在 Struts 2 中做到这一点 我按照下面的方法做了
  • 如何检测图像是否像素化

    之前有人在 SO 上提出过这样的问题 在Python中检测像素化图像 https stackoverflow com questions 12942365 detecting a pixelated image in python还有关于q
  • 从休眠乐观锁定异常中恢复

    我有一个这样的方法 Transactional propagation Propagation REQUIRES NEW public void doSomeWork Entity entity dao loadEntity do some
  • 虽然我的类已加载,但 Class.forName 抛出 ClassNotFoundException

    代码如下 它的作用是加载我放在主目录中的 jar 文件中的所有类 import java io File import java util jar JarFile import java util jar JarEntry import j
  • 在 Java 中通过 XSLT 分解 XML

    我需要转换具有嵌套 分层 表单结构的大型 XML 文件
  • 如何删除日期对象的亚秒部分

    当 SQL 数据类型为时间戳时 java util Date 存储为 2010 09 03 15 33 22 246 如何在存储记录之前将亚秒设置为零 例如 在本例中为 246 最简单的方法是这样的 long time date getTi
  • Java、Spring:使用 Mockito 测试 DAO 的 DataAccessException

    我正在尝试增加测试覆盖率 所以我想知道 您将如何测试 DAO 中抛出的 DataAccessExceptions 例如在一个简单的 findAll 方法中 该方法仅返回数据源中的所有数据 就我而言 我使用 Spring JdbcTempla
  • Java:如何确定文件所在的驱动器类型?

    Java 是否有一种独立于平台的方法来检测文件所在的驱动器类型 基本上我有兴趣区分 硬盘 可移动驱动器 如 USB 记忆棒 和网络共享 JNI JNA 解决方案不会有帮助 可以假设 Java 7 您可以使用 Java 执行 cmd fsut
  • 如何从日期中删除毫秒、秒、分钟和小时[重复]

    这个问题在这里已经有答案了 我遇到了一个问题 我想比较两个日期 然而 我只想比较年 月 日 这就是我能想到的 private Date trim Date date Calendar calendar Calendar getInstanc
  • 我们如何测试包私有类?

    我正在看书Effective Java in Item 13 Minimize the accessibility of classes and members 它提到 为了方便测试 您可能想让类 接口或成员更易于访问 这在某种程度上是好的
  • 避免 Java 中的重复导入:继承导入?

    有没有办法 继承 导入 Example 常见枚举 public enum Constant ONE TWO THREE 使用此枚举的基类 public class Base protected void register Constant
  • Lombok @Builder 不创建不可变对象?

    在很多网站上 我看到 lombok Builder 可以用来创建不可变的对象 https www baeldung com lombok builder singular https www baeldung com lombok buil
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • 替换文件中的字符串

    我正在寻找一种方法来替换文件中的字符串而不将整个文件读入内存 通常我会使用 Reader 和 Writer 即如下所示 public static void replace String oldstring String newstring
  • try-with-resources 中出现死代码警告,但翻译后的 try-catch-finally 中没有出现死代码警告

    以下代码使用try 有资源 https docs oracle com javase specs jls se7 html jls 14 html jls 14 20 3Java 8 中引入的构造 偶尔抛出 方法被声明为抛出一个偶尔的异常

随机推荐

  • 【教程】 .Net环境和开发工具Visual Studio的安装

    文章目录 前言 1 NET环境的安装 2 Visual Studio工具的安装 总结 前言 NET 是一个免费的跨平台开放源代码开发人员平台 用于生成多种类型的应用程序 NET 基于许多大规模应用在生产中使用的高性能运行时构建而来 Visu
  • springboot连接mysql8.0问题解决

    原配置如下 spring datasource url jdbc mysql 47 112 103 249 3306 management useSSL true allowMultiQueries true
  • idea 案例:学生信息查询系统学生信息查询系统

    实现功能 1 多条件查询 当用户输入的学生姓名不为空时 则只根据学生姓名进行学生信息的查询 当用户输入的学生姓名为空而学生专业不为空时 则只根据学生专业进行学生信息的查询 当用户输入的学生姓名和专业都为空 则要求查询出所有学号不为空的学生信
  • 华硕电脑bios设置虚拟机_【雷电说明书】华硕电脑与华硕笔记本开VT的BIOS设置方法...

    本文主要讲的是华硕电脑与华硕笔记本开VT的BIOS设置方法 按照大体市面上常用的电脑型号分类 大致分为三个步骤 开VT的用处 或者说开VT的好处就是安卓模拟器能够得到更多的资源来运行游戏 为了游戏玩的爽 可以认为安卓模拟器是必须开VT的 这
  • 猿如意中的【Wireshark】网络包分析工具详情介绍

    一 工具名称 Wireshark win64 3 6 5 二 下载安装渠道 Wireshark win64 3 6 5 通过CSDN官方开发的 猿如意 客户端进行下载安装 对 你没有看错 就是来自CSDN官方 这次 CSDN果然没有辜负广大
  • SpringCloud-学习笔记(四)nacos基本使用

    什么是nacos Nacos n k s 是 Dynamic Naming and Configuration Service的首字母简称 一个更易于构建云原生应用的动态服务发现 配置管理和服务管理平台 使用java语言进行开发 Nacos
  • 通过修改kong属性解决不能获取外网域名的问题

    作者 朱金灿 来源 https blog csdn net clever101 kong就是对nginx进行再一次封装而做成的企业级api网关 kong dashboard是kong进行设置的一个可视化界面 目前公司的服务集群都采用kong
  • 开发中 @/方式引入的文件,通过ctrl + 点击可直接指向

    问题描述 实际开发项目中 例如VUE 或者 React 开发中 我们经常会通过 的方式进行文件引入 但是这种方式会导致不能直接点击进入指定的文件 解决方案 根目录创建jsconfig json文件 文件内容如下 exclude node m
  • Vue实现搜索关键词高亮显示

    最近写移动端项目的时候 遇到搜索关键词高亮的需求 写篇文章纪录一下 先看效果 以上为实现效果展示 整体思路 对后台返回的数据进行操作 我这里是模拟数据 使用正则去匹配搜索关键词后 使用replace进行字符串的替换 渲染数据部分使用v ht
  • CentOS-6.6-x86_64-minimal.iso镜像下载

    CentOS6 6的64位镜像文件iso 迅雷种子 centos是基于linux的内核开发的操作系统 是企业服务器广泛使用的操作系统 链接 https pan baidu com s 1tSpIdAxTnScqXQotVCg2gg http
  • ARM Cortex-A7时钟树综合实战分析

    ARM Cortex A7时钟树综合实战分析 文章右侧广告为官方硬广告 与吾爱IC社区无关 用户勿点 点击进去后出现任何损失与社区无关 吾爱 IC 高端技术交流社区 知识星球目前已经拥有1040 位星球成员 目前数字 IC 领域最大的高端技
  • 判断玩家是否在敌人的可视范围的方法Physics.OverlapSphere

    Physics OverlapSphere Vector 3 position float radius 该方法判断以一个点为中心 半径为radius的球中的碰撞体集合 所以返回值可以用 var 如var colliders Physics
  • spring mvc 控制器返回 HTML 页面

    之前的页面都是 jsp的 后面需要改为html 如下代码 之前的Log 是 jsp 后面改为 html Log html 页面单独运行正常 但是在控制器跳转是出错 如下 RequestMapping value login out publ
  • HCIPR&S222-V2.5一些总结

    1 IP Precedence取值中 代表immediate的是2 2 VRRP中路由器已经为Master设备 不会被更高优先级的Backup设备抢占 如果出现故障的情况会被Backup设备抢占 故障恢复后重新抢占为Master设备 默认为
  • java jmf视频播放器无法播放视频问题

    初学java 谢了一个参照网上代码写了个java jmf视频播放器 运行调试代码没问题 可是被这个avi视频格式纠结的要死 换了n多个avi格式视频依然不行 经过查阅资料发现现在网上流行的avi格式并不是真正的avi格式 大都是其他格式转化
  • 原生AJAX 的基本使用

    1 准备工作 1 1 安装node js Node js 中文网 1 2 安装express 服务端框架 Express 基于 Node js 平台的 web 应用开发框架 Express 中文文档 Express 中文网 1 2 1 初始
  • MYSQL多表连查

    前言 多表查询 也称为关联查询 指两个或更多个表一起完成查询操作 前提条件 这些一起查询的表之间是有关系的 一对一 一对多 它们之间一定是有关联字段 这个关联字段可能建立了外键 也可能没有建立外键 比如 员工表和部门表 这两个表依靠 部门编
  • 诚邀您参加Go+1.0发布会!与大咖共同探索行业生态!

    你想参与iPhone13抽奖吗 你想和大咖面对面交流吗 你想收获最前沿的行业动态吗 10 月15 日 Go Together Go 1 0发布会暨Go 开发者基金会启动仪式重磅来袭 活动中除七牛云 CEO Go 语言发明人许式伟以及Go 开
  • 传奇私服游戏支付接口申请(已解决)

    传奇游戏是一款经典打怪升级 PK游戏 盛大游戏公司于2001年9月发布 随后出现了众多传奇私服游戏版本 到现在依然受很多人喜爱 经历了多次升级换代 现已转变为游戏体验更加细腻的页游和手游 成为了小成本高收益的热门游戏 受到各游戏服务商和玩家
  • IO流基础总结

    IO流 File 1 File类概述和构造方法 File 它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言 其封装的并不是一个真正存在的文件 仅仅是一个路径名 而已 它可以是存在的 也可以是不存在的