Javase百问白答系列一

1 、简述 FileInputStream 类和 FileOutputStream 类的创建语法。
FileInputStream 类和 FileOutputStream 类是用来处理文件输入 /输出的类,创建 FileInputStream 对象的语法如下 (其中:fileName表示文件的路径名称,可以是绝对路径或相对路径哈)
   FileInputStream fileInputStream = new FileInputStream(fileName);
创建 FileOutputStream 对象的语法如下
(其中: fileName 表示文件的路径和名称,可以是相对路径或绝对路径。)
FileOutputStream fos = new FileOutputStream(fileName);
需要注意的是,这两个类的创建语法中可能会抛出 IOException 异常,因此需要进行异常处理,可以使
try-catch 语句或者 throws 关键字进行处理。另外,使用完毕后应该关闭对应的流对象,可以通过调
close() 方法来实现。
2 、如果要完成将各种数据的写入,需要将一个文件输出流对象 fout
与一个格式输出流对象 out 相连,要用到什么关键代码?
回答:
要将一个文件输出流对象 fout 与一个格式输出流对象 out 相连,可以使用 Java 中的 PrintWriter 类来
实现。
下面是将文件输出流对象 fout 与格式输出流对象 out 相连的关键代码:
 FileOutputStream fout = new FileOutputStream("example");PrintWriter out = new PrintWriter(fout);
在这个示例中,通过创建 FileOutputStream 对象 fout 表示要写入的文件,然后将其传递给
PrintWriter 对象 out 。之后,就可以使用 PrintWriter 对象 out 的方法来将各种数据写入文件,比如
print println 方法用于写入字符串 printf 方法用于格式化输出等。写入完毕后,应当调用 close 方 法关闭输出流,以确保数据被正确写入并释放相关资源。
3 、文件操作类是否可以读入多个文件?什么类可以完成这个操作?
Java 文件操作类可以读入多个文件。其中, BufferedReader 类可以用于按行读取文本文件,而
FileReader 则用于创建 BufferedReader 对象并关联文件。
下面是一个示例代码,展示了如何使用 BufferedReader 类和 FileReader 类来读取多个文件:
        try {BufferedReader reader;String[] fileNames = {"file1.txt" , "file2.txt" , "file3.txt"};for (String fileNme : fileNames) {reader = new BufferedReader(new FileReader(fileNme));String line;while ((line = reader.readLine()) != null) {//处理读取到的每一行数据System.out.println(line);}reader.close();}}catch (IOException e){e.printStackTrace();}
}

4 File 类有哪些构造函数和常用方法?
Java 中的 File 类有多个构造函数和常用方法,用于操作文件和目录。以下是 File 类的一些常用构造函 数和方法:
构造函数:
File(String pathname) :根据文件路径名创建 File 对象,可以是相对路径或绝对路径。
File(String parent, String child) :根据指定的父路径和子路径字符串创建 File 对象。
File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File 实例。
常用方法:
boolean exists() 判断文件或目录是否存在。
boolean isFile() : 判断 File 对象表示的是否为文件。
boolean isDirectory() : 判断 File 对象表示的是否为目录。
String getName() 获取文件或目录的名称。
String getAbsolutePath() 获取文件或目录的绝对路径。
boolean createNewFile() 创建新的空文件。
boolean mkdir() 创建此抽象路径名指定的目录。
String[] list() 返回目录下的文件和目录的名称数组。
这些构造函数和方法使得 File 类在文件和目录的操作中非常灵活,可以用于判断文件是否存在、创建文 件或目录、获取文件信息等操作。
5 、写出 InputStream 定义的 read() 函数的三种形式,并简要的写出
它们之间的区别。
Java 中, InputStream 定义了 read() 方法的三种形式,它们分别是:
  • int read()
  • int read(byte[] b)
  • int read(byte[] b, int off, int len)
这三种形式的 read() 方法有以下区别:
1 int read()
这是最基本的形式的 read() 方法,每次调用该方法将从输入流中读取下一个字节,返回读取的字节数 据。
当读取到流的末尾时,返回值为 -1
这种形式的 read() 方法适用于读取单个字节的数据
2 int read(byte[] b)
这种形式的 read() 方法将最多 b.length 个字节的数据从输入流中读取到 byte 数组 b 返回实际读取的字节数。
当返回值为 -1 时,表示已经到达流的末尾。
² 这种形式的 read() 方法适用于一次性读取多个字节的场景。
3 int read(byte[] b, int off, int len)
这种形式的 read() 方法将最多 len 个字节的数据从输入流中读取到 byte 数组 b 读取的数据放入 b 中的偏移量为 off 开始的位置,返回实际读取的字节数。
当返回值为 -1 时,表示已经到达流的末尾。
这种形式的 read() 方法允许控制从输入流中读取数据的长度和放入目标数组中的位置,适用于特定的 读取需求。
这三种形式的 read() 方法提供了灵活和多样化的读取方式,使得 InputStream 在处理输入流时更加方 便和高效
6 abstract class interface 有什么区别 ?
回答:
抽象类( abstract class )和接口( interface )是 Java 中实现多态性的两种机制,它们的区别主要在以 下几个方面:
1 )定义方式:抽象类使用 abstract 关键字定义,可以包含具体方法的定义和抽象方法的声明,并使 用 extends 进行继承。接口使用 interface 关键字定义,只能包含抽象方法的声明,并使用
implements 进行实现。
2 )实现多态性:抽象类通过继承实现单一继承,子类可以重写抽象类的方法,继承它的属性和方
法。接口通过实现实现多重继承,一个类可以实现多个接口,具备多个接口的行为。
3 )设计目的和思想:抽象类用于创建类继承层次结构,将具有相似行为和属性的类进行分组,并提 供默认实现。接口用于定义合同或规范,强调类应该具有什么行为而不是如何实现,不相关的类可以实 现相同的行为。
抽象类和接口在不同场合有不同的用途,具体使用取决于设计需求。有时候,可以将抽象类和接口结合 使用以充分发挥它们的特性。
7 、什么是类成员,什么是实例成员?他们之间有什么区别?
Java 中,类成员( class members )和实例成员( instance members )指的是在类中定义的不同类 型的成员,它们具有以下区别:
1) 定义位置:
类成员被定义在类的内部但在任何实例方法之外。它们在类加载时就会被创建,与类的实例化无
关。类成员包括静态变量( static variables )和静态方法( static methods )。 
实例成员被定义在类的内部,但在实例方法内部。它们与类的实例相关联,只有在创建类的实例时
才会被分配和初始化。实例成员包括实例变量( instance variables )和实例方法( instance
methods )。
2) 访问方式:
类成员可以通过类名直接访问,无需实例化类。例如,类名 . 类成员。
实例成员只能通过实例化类后的对象来访问。例如,对象名 . 实例成员。
3) 生命周期:
类成员在类加载时就会存在,直到程序结束或类被卸载时才会被销毁。
实例成员在类的实例化过程中创建,实例被销毁时,实例成员也会被销毁。
4) 内存分配:
类成员在类加载时分配静态存储区,并在整个程序的生命周期内存在。它们被所有该类实例所共享。
实例成员在每个类的实例化过程中会为每个实例分配独立的内存空间。
5) 使用场景:
类成员通常用于描述属于整个类的数据和行为,如常量和工具方法。
实例成员通常用于描述每个实例特有的数据和行为。
总的来说,类成员与类本身相关,对于所有实例而言都是相同的;而实例成员与实例相关,每个实例 都有自己的实例成员副本。类成员通常用来表示整个类的共享信息,实例成员则用于表示每个实例的个性化信息。

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

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

相关文章

学生综合测评系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssmvue等技术项目合集) 1. 系统功能…

GitHub文件克隆到本地(GitHub desktop快速上手版)

使用 GitHub Desktop 轻松地克隆 GitHub 上的项目。 打开 GitHub Desktop 应用程序。 在菜单栏中,单击“文件”,然后选择“克隆存储库”。 在弹出的窗口中,选择要克隆的存储库: 单击与要克隆的仓库位置对应的选项卡。或者&#…

简明Pytorch分布式训练 — DistributedDataParallel 实践

上一次的Pytorch单机多卡训练主要介绍了Pytorch里分布式训练的基本原理,DP和DDP的大致过程,以及二者的区别,并分别写了一个小样作为参考。小样毕竟还是忽略了很多细节和工程实践时的一些处理方式的。实践出真知,今天(简…

记 SpringBoot 使用@RequestBody 接收不到参数

POST请求,前端传的参数名字跟后端规定的参数一样。但是通过RequestBody注解接收的参数始终为NULL! //实体类中属性没有用驼峰命名 private String SubscribeID; /*** 标题*/ private String Title;解决方案: 1、字段上使用JsonProperty(valu…

深入理解数据结构(1):复杂度详解

文章主题:复杂度详解🌱所属专栏:深入理解数据结构📘作者简介:更新有关深入理解数据结构知识的博主一枚,记录分享自己对数据结构的深入解读。😄个人主页:[₽]的个人主页🔥…

面试宝典:深入剖析golang 反射在orm模型中的应用

在 Go 语言中,反射(Reflection)是一种强大的机制,它允许程序在运行时检查和修改自身的结构和行为。在 ORM(Object-Relational Mapping,对象关系映射)模型中,反射被广泛应用于将数据库中的表记录映射到 Go 语言的结构体实例,以及将结构体实例的数据持久化到数据库中。以…

【微服务】OpenFeign+Sentinel集中处理远程调用异常

文章目录 1.微服务基本环境调整1.对10004模块的application.yml调整2.启动nacos以及一个消费者两个提供者3.测试1.输入http://localhost:8848/nacos/index.html 来查看注册情况2.浏览器访问 http://localhost:81/member/nacos/consumer/get/13.结果 2.使用OpenFeign实现微服务模…

EtherCAT主站SOEM -- 22 -- Wireshark抓取并分析EtherCAT数据

EtherCAT主站SOEM -- 22 -- Wireshark抓取并分析EtherCAT数据 0 QT-SOEM视频预览及源代码下载:0.1 QT-SOEM视频预览0.2 QT-SOEM源代码下载1.Wireshark下载及安装2.Wireshark抓取EtherCAT数据2.1 我抓取的数据包3.Wireshark过滤EtherCAT数据3.1 筛选EtherCAT数据的COE数据:3.2…

C# comboBox

在C#中,ComboBox 是一个常用的控件,它允许用户从下拉列表中选择一个项目,或者输入自定义的文本(取决于 ComboBox 的 DropDownStyle 属性设置)。ComboBox 控件通常用于显示一系列固定的选项,让用户能够快速地…

2024年北京通信展|北京国际信息通信展览会|北京PT展

2024年北京通信展|北京国际信息通信展览会|北京PT展 2024年中国国际信息通信展览会(PTEXPO),是由工业和信息化部主办的ICT行业盛会,自1990年创办以来,已成功举办31届,是反映信息通信行业发展最新成果的重要…

Mysql 常用语句及用法记录

一、mysql简介-常用命令: MySQL是一种关系型数据库管理系统,它提供了许多命令和用法来管理和操作数据库。以下是一些常用的MySQL命令及其用法: 1. 连接数据库: mysql -u username -p 用于连接到MySQL服务器,其中usern…

【Java数据结构】关于栈的操作出栈,压栈,中缀表达式,后缀表达式,逆波兰表达式详解

🔥个人主页:努力学编程’ 🔥内容管理:java数据结构 上一篇文章我们讲过了java数据结构的链表,对于链表我们使用了它的一些基本操作,完成了扑克牌小游戏的操作,如果你感兴趣的话,点…

MATLAB 自定义均值滤波 (53)

MATLAB 自定义均值滤波 (53) 一、算法介绍二、算法实现1.原理2.代码一、算法介绍 均值滤波,是一种常见的点云平滑算法,改善原始点云的数据质量问题,MATLAB自带的工具似乎不太友好,这里提供自定义实现的点云均值滤波算法,具体效果如下所示: 均值滤波前: 均值滤波后:…

Pycharm选择使用Anaconda环境中的Pytorch 失败解决办法之一

前几日想要复现一篇论文,结果给配的台式机完全禁不住,老是报溢出,慢都没事,溢出就很难受了,因此想用自己笔记本的GPU来训练。 安装以后遇到一个问题: Anaconda里创建了环境,安装好了对应pytor…

RPC--远程调用

通信调用 程序A(加密) 程序B 内存共享 (本地RPC) 发送窗口信息 (本地RPC) --长度有限制 串口通讯 com口 --浏览器不开串口... 通讯管道(防止多开) (本地RPC) --对我们不可见. 网络 TCP/IP (远程RPC) --good! 浏览器(, ws) <--- 任意语言开发的软件 --任意语言控制浏览器. 注…

Linux基础知识

文章目录 一、入门命令&#xff1a;1.find 条件 要查找的文件满足的条件&#xff08;从当前目录开始查找&#xff09;&#xff1a;2.locate 文件名&#xff1a;3.lear CTRL L &#xff08;清除终端窗口&#xff09;与cat&#xff08;打印输出文件内容&#xff09;&#xff1a…

CSS3新增的语法(一)

1. CSS3 新增长度单位 rem根元素字体大小的倍数&#xff0c;只与根元素字体大小有关。vw 视口宽度的百分之多少------10vw 就是视口宽度的10% 。vh 视口高度的百分之多少 ------10vh 就是视口高度的10% 。vmax 视口宽高中大的那个的百分之多少。&#xff08;了解即可&#xff…

[TS面试]TS中使用Union Types时注意事项?

TS中使用Union Types时注意事项? 属性和方法的访问? 只能访问共有属性或方法 function getLength(something: string | number):number{return something.length // wrong, 因为number 类型时候没有 .length }function getString(something: string | number):string{retur…

网络性能提升10%,ZStack Edge 云原生超融合基于第四代英特尔®至强®可扩展处理器解决方案发布

随着业务模式的逐渐转变、业务架构逐渐变得复杂&#xff0c;同时容器技术的兴起和逐渐成熟&#xff0c;使得Kubernetes、微服务等新潮技术逐步应用于业务应用系统上。 为了充分释放性能、为业务系统提供更高效的运行环境&#xff0c;ZStack Edge 云原生超融合采用了第四代英特尔…

ROS传感器图像转换

ros通过摄像头来获得图片&#xff0c;传感器数据类型为sensor_msgs中的Image&#xff0c;具体的数据类型组成&#xff1a; sensor_msgs/Image Documentationhttp://docs.ros.org/en/api/sensor_msgs/html/msg/Image.html但是我们一般使用opencv对图像进行处理&#xff0c;所以…