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流基础总结 的相关文章

  • Grizzly 和 Servlet 容器上下文

    我试图在我编写的 在 Grizzly 上运行的 Servlet 中获取一些注入的上下文 例如 Session 或 HttpServletRequest 但我所做的似乎都不起作用 整个过程似乎过早地停止了 并出现以下错误 SEVERE Mis
  • 光学标记阅读器的开源库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想要一个用于光学标记读取 OMR 的开源库 有这样的库吗 我想在我的 java 应用程序中使用这个库 zxing 可能对你有用 http
  • 使用 Jersey Client 忽略自签名 ssl 证书 [重复]

    这个问题在这里已经有答案了 我正在使用 Jersey 客户端库对 jboss 上运行的其余服务运行测试 我使用自签名证书在服务器上正确设置了 https 在本地主机上运行 但是 每当我使用 https url 运行测试时 都会收到以下错误
  • 如何限制用户键入时 JTextPane 中的字符数 (Java)

    我需要不允许在输入 X 后输入任何字符 我需要在输入 X 个字符后发出蜂鸣声 我知道如何在用户按 Enter 键后执行此操作 但我需要在用户按 Enter 键之前执行此操作 我从 Oracle 站点找到的方法是将 DocumentSizeF
  • 为什么Java HashMap的最大容量是1<<30而不是1<<31?

    Why is the maximum capacity of a Java HashMap 1 lt lt 30 and not 1 lt lt 31 even though the max value of an int is 231 1
  • 使用 Java 检索 Window 进程的 CPU 使用率

    我正在寻找一个 Java 解决方案来查找 Windows 中正在运行的进程的 CPU 使用情况 查了一下网上 关于Java解决方案的信息似乎很少 请记住 我并不是要查找 JVM 的 CPU 使用情况 而是要查找当时在 Windows 中运行
  • java“类文件包含错误的类”错误

    我正在尝试制作一个控制台应用程序来测试我的网络服务 我成功部署了一个网络服务http localhost 8080 WS myWS http localhost 8080 WS myWS我用 wsimport 制作了代理类 wsimport
  • 嵌套枚举是静态的吗?

    读书时这个问题 https stackoverflow com questions 25011061 why can enum implementations not access private fields in the enum cl
  • 使用 eclipse 配置mockito 时出现问题。给出错误:java.lang.verifyError

    当我将我的mockito库添加到类路径中 并使用一个简单的mockito示例进行测试时 我尝试使用模拟对象为函数add返回错误的值 我得到java lang verifyerror 以下是用于测试的代码 后面是 logcat Test pu
  • 使用java读取Excel工作表的单列

    我有一张 Excel 表格 我想编写一个方法 该方法将参数作为要读取的列号 并返回一个由该列中的所有数据组成的数组 然后将该列元素放置在 xml 工作表中 我怎样才能编写一个方法来做到这一点 使用 Apache POI 您可以在他们的使用页
  • 将 @RequestLine 与 Feign 一起使用

    我有一个工作 Feign 接口定义为 FeignClient content link service public interface ContentLinkServiceClient RequestMapping method Requ
  • 使用 Mockitos 传递参数化输入

    我正在使用 Mockito 进行单元测试 我想知道是否可以使用 Junit 测试中的方式发送参数化输入参数 e g InjectMocks MockClass mockClass new MockClass Test public void
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • spring-boot-starter-web 2.4.4 导入 spring-web 和 spring-webmvc 版本 4.3.12 在 pom 中列为 5.3.5

    我正在使用spring boot starter web我的项目中的版本2 4 4 当我查看其内容时 它清楚地列出了 spring web 和 spring webmvc 5 3 5 版本 但是 由于某种原因 我可以看到这个 spring
  • Java Calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY),它会向后滚动、向前滚动还是未知?

    假设以下代码在 2009 年 8 月 22 日 星期六 执行 Calendar c Calendar getInstance c set Calendar DAY OF WEEK Calendar SUNDAY c get Calendar
  • 如何在jpa中共享EntityManagerFactory

    我是 jpa 的新手 这是场景 我正在开发一个 Web 应用程序 其中 多个用户可以登录 当 user1 注销时 我正在使用下面的代码 public static void closeEntityManagerFactory if enti
  • Admob - 没有广告可显示

    你好 我尝试制作一些在 Android 手机上显示广告的示例程序 并尝试在 v2 2 的模拟器上测试它 代码中的一切似乎都很好 但调试器中的 AdListener 表示 响应消息为零或空 onFailedToReceiveAd 没有广告可显
  • 如何手动添加Android Studio依赖

    我多次尝试向我的项目添加依赖项 但每次都会出现错误 我想添加它们的依赖项是 de hdodenhof circleimageview 1 3 0 and com github bumptech glide glide 3 6 1 所以我想下
  • Spring 和 Hibernate 连接池

    如何使用 Spring 和 Hibernate 配置连接池 Thanks Venu 您可以使用 DBCP 组件
  • 错误:运算符不存在:整数 = 字符变化,使用 Postgres 8.2

    我有一个用旧版本的 Eclipse Ganymede 如果我没记错的话 开发的 Java EE Web 应用程序 我最近迁移到 Kubuntu 12 04 LTS 并将应用程序迁移到 Eclipse Kepler 我从 Eclipse 网站

随机推荐

  • 【教程】 .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而言 其封装的并不是一个真正存在的文件 仅仅是一个路径名 而已 它可以是存在的 也可以是不存在的