Java面试复习(3)之IO流

金九银十准备季:Java IO流面试题(含答案) 前言 本题集列举了众多IT公司面试真题,对应聘Java程序员职位的常见考点和知识体系都进行的分类和归纳整理。 本题集适合应聘Java和JavaEE职位的程序员作为面试复习、学习和强化的资料,也适合其他程序员作为拓展读物进行阅读。 本题集包含了常见的算法、面试题,也包含了新的高级技术,比如:微服务架构等技术的面试题目。本题集非常全面,对于工作1-5年左右的java程序员面试有非常好的指导作用。 大家也可以访问(直接在线观看最新版的面试题): Java考试_Java笔试题机试题真题讲解_JavaWeb 阅读详情

java面试复习(1)
java面试复习(2)之File类
Java面试复习(3)之IO流
java面试复习(4)之字符流
File类:
英语描述一个文件或者文件夹的。

通过File对象我们可以读取文件或者文件夹的属性数据,如果我们需要读取文件的内容数据,那么我们需要使用IO流技术。

IO流(Input Output)

IO解决问题:解决设备与设备之间的数据传输问题。内存—>硬盘 硬盘—>内存

IO流分类:

如果是按照数据的流向划分:
判断使用输入流还是输出流的依据:以当前程序作为参照物,观察数据是流入还是流出,如果是流出则使用输出流,如果是流入,则使用输入流。

如果按照处理的单位划分:

字节流:字节流读取得都是文件中二进制数据,读取到二进制数据不会经过任何的处理。

字符流:字符流读取的数据是以字符为单位的。字符流也是读取文件中的二进制数据,不过会把这些二进制数据转换成我们能识别的字符。

字符流=字节流+解码

输入字节流:

---------|InputStream所有输入字节流的基类 抽象类

-------------|FileInputStream 读取文件数据的输入流字节

使用FileInputStream读取文件数据的步骤:

1.找到目标文件

2.建立数据的输入通道

3.读取文件中的数据

4.关闭资源
package nyist.net;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Demo5 {
public static void main(String[] args) throws IOException{
		
	readTest4();
	
}
//读取的方式一:
//缺陷:无法读取完整一个文件的数据
public static void readTest1() throws IOException{
	//1.找到目标文件:
	File file = new File("E:\\a.txt");
	//2.建立数据的输入通道
	FileInputStream fileInputStream = new FileInputStream(file);
	//3.读取文件的数据
	int content = fileInputStream.read();
	System.out.println("读到的数据是:"+(char)content);
	//关闭资源,实际就是释放资源
	fileInputStream.close();
}

//读取方式二:使用循环读取文件的数据
public static void readTest2() throws IOException{
	//1.找到目标文件:
	File file = new File("E:\\a.txt");
	//2.建立数据的输入通道
	FileInputStream fileInputStream = new FileInputStream(file);
	//3.读取文件的数据
	int content = 0;//声明该变量用于存储读取到的数据
	while((content = fileInputStream.read())!=-1){
		
		System.out.println((char)content);
			
	}
	//4.关闭资源
	fileInputStream.close();
}
//读取方式3:使用缓冲数组读取。
//缺点:无法读取完整一个文件的数据,比如说一个文件很大。
public static void readTest3() throws IOException{
	
	//1.找到目标:
	File file  = new File("E:\\a.txt");
	//2.建立数据的输入通道
	FileInputStream fileInputStream = new FileInputStream(file);
	//3.建立缓冲字节数组,读取文件的数据.
	byte[] buf = new byte[1024];//相当于超市里面的购物车.
	int length = fileInputStream.read(buf);
	//如果使用read读取数据传入字节数组,那么数据式存储到字节数组中的,
	//而这时候read方法的返回值时表示的是本次读取了几个字节数据到字节数组中。
	System.out.println("length"+length);
	//使用字节数组构建字符串
	String content = new String(buf,0,length);
	System.out.println("内容"+content);
	//关闭资源
	fileInputStream.close();
}

//方式4:使用缓冲数组配合循环一起读取。
public static void readTest4() throws IOException{
	
	//1.找到目标文件
	File file  = new File("E:\\a.txt");
	//2.建立数据的疏通管道
	FileInputStream fileInputStream = new FileInputStream(file);
	//建立缓冲数组配合循环读取文件的数据
	int length = 0;//保存每次读取到的字节个数。
	byte[] buf = new byte[1024];//存储读取到的数据
	//缓冲数组的长度一般是1024的倍数,因为与计算机的处理单位。理论上缓冲数组越大,效率越高.
	while((length = fileInputStream.read(buf))!=-1){
		System.out.println(new String(buf,0,length));
	}
	//关闭资源
	fileInputStream.close();
}
}

输出字节流:
-----------|OutputStream是所有输出字节流的父类。抽象类。
-----------------|FileOutStream向文件输出数据的输出字节流

FileOutputStream使用:

	1.找到目标文件

	2.建立数据的输出通道

	3.把数据转换成字节数组写出。

	4.关闭资源。

FileOutputStream要注意细节:

1.使用FileOutputStream的时候,如果目标文件不存在,那么会自动创建目标文件。

2.使用FileOutputStrteam写数据的时候,如果目标文件已经存在,那么会先清空目标文件中的数据,然后再写入数。

3.使用FileOutputStream写数据的时候,如果目标文件已经存在,需要在原来的数据基础上追加数据的时候应该使用new FileOutputStream(file,true)构造函数,第二参数为true。

4.使用FileOutputStream的write方法写数据的时候,虽然接收的是一个int类型的数据,但是真正写出的只是一个字节的数据,只是把低八位的二进制数据写出,其他二十四位数据全部丢弃。


```java

```java
	package nyist.net;
	import java.io.File;
	import java.io.FileNotFoundException;
	import java.io.FileOutputStream;
	import java.io.IOException;
	public class Demo6 {
	public static void main(String[] args) throws IOException {
		
		//writeTest();
		  writeTest1();
		
	}
	//使用字节数组把数据写出
	public static void writeTest() throws IOException{
		//找到目标文件
		File file = new File("E:\\b.txt");
		//建立数据通道
		FileOutputStream fileOutputStream = new FileOutputStream(file);
		//把数据写出
		String data = "abcde";
		fileOutputStream.write(data.getBytes());
		//关闭资源
		fileOutputStream.close();
	}
	public static void writeTest1() throws IOException{
		
		File file = new File("E:\\b.txt");
		FileOutputStream fileOutputStream = new FileOutputStream(file,true);
		String data = "abc";
		byte [] buf = data.getBytes();
		fileOutputStream.write(buf, 0, 3);
		//从字节数组的指定索引值开始写。
		fileOutputStream.close();
	}
	}

//需求:拷贝图片

public class Demo7 {

public static void main(String[] args) throws IOException {
	
	copyImage();
	
}

public static void copyImage() throws IOException{
	
	File file1 = new File("C:\\Users\\LENOVO\\Pictures\\Camera Roll\\假装生活在1994.png");
	File file2 = new File("E:\\假装生活在1994.png");
	FileInputStream fileInputStream = new FileInputStream(file1);
	FileOutputStream fileOutputStream = new FileOutputStream(file2);
	int length = 0;
	byte [] buf = new byte[1024];
	while((length = fileInputStream.read(buf))!=-1){
		fileOutputStream.write(buf, 0, length);
	}
	fileOutputStream.close();
	fileInputStream.close();
}
}

IO处理异常

首先复习一下异常的基本知识:

try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 }

catch { //除非try里面执行代码发生了异常,否则这里的代码不会执行 }

finally { //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally }

public static void readStream() {
		
	FileInputStream fileInputStream = null;
	try {
	//找到目标:
	File file = new File("F:\\a.txt");
	//建立数据疏通管道

		fileInputStream = new FileInputStream(file);
		byte[] buf = new byte[1024];
		int length = 0;
		while((length = fileInputStream.read(buf))!=-1){
				System.out.println(new String(buf,0,length));
		}
		
	} 
	//建立缓冲数组读取数据
							
catch (IOException e) {
	 	/*
	 	 *处理的代码。。首先你要组织后面的代码,而且需要通知调用者这里出错了。。。
	 	 *throw new RuntimeException(e);
	 	 *把IOException传递给RunTimeException包装一层,然后再抛出,
	 	 *这样子做的目的是为了让调用者使用变得更加灵活。
	 	 *
	 	 * */
 		System.out.println("读取文件资源出错...");
		throw new RuntimeException(e);
	}finally {
		if(fileInputStream!=null){
			try {
				fileInputStream.close();
				System.out.println("关闭资源成功...");
			} catch (IOException e) {
				System.out.println("关闭资源失败...");	
				throw new RuntimeException(e);
			}
		}	
	}

Buffered

缓冲输入字节流对象,更高效读取文件。

输入字节流体系:

---------|InputStream 输入字节流的基类。抽象。

------------|FileInputStream读取文件数据的输入字节流。

------------|BufferedInputStream缓冲输入字节流

缓冲输入字节流的出现主要为了提高读取文件数据的效率

其实该类内部只不过是维护了一个8kb的字节数组而已。

注意:凡是缓冲流都不具备读写文件的能力。

使用BufferedInputStream的步骤:

1.找到目标文件

2.建立数据的输入通道

3.建立缓冲输入字节流

4.关闭资源

输入字节缓冲流例子

package nyist.net;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Demo8 {
public static void main(String[] args) throws IOException {
	readTest1();
}

public static void readTest1() throws IOException{
	
	File file = new File("E:\\a.txt");
	FileInputStream fileInputStream = new FileInputStream(file);
	BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
	int content = 0;
	while((content = bufferedInputStream.read())!=-1){
		System.out.println((char)content);
	}
	bufferedInputStream.close();
	//调用BufferedInputStream的close方法实际上关闭的是FileinputStream。
}
}

输出字节缓冲流

----------|OutputStream

--------------|FileOutputStream向文件输出数据的输出字节流。

--------------|BufferedoutputStream缓冲输出字节流

BufferedOutputStream出现的目的是为了提高写数据的效率。

使用BufferedOutputStream要注意的细节:

1.使用BufferedOutputStream写数据的时候,它的write方法是先把数据写到它内部维护的字节数组中。

2.使用BufferedOutputStream写数据的时候,它的write方法是先把数据写到它内部维护的字节数组中,如果需要把数据真正的写道硬盘上面,需要调用flush方法或者是close方法,或者是内部维护的字节数组已经填满数据的时候。

public class Demo2 {
public static void main(String[] args) throws IOException {
	//找到目标文件
	File file = new File("F:\\a.txt");
	//建立数据的输出通道
	FileOutputStream  fileOutputStream = new FileOutputStream(file);
	//建立缓冲输出字节流对象
	BufferedOutputStream bufferedOutputStream  = new BufferedOutputStream(fileOutputStream);
	//把数据写出
	bufferedOutputStream.write("hello world".getBytes()); 
	//把缓冲数组中内部的数据写到硬盘上面。
	//bufferedOutputStream.flush();
	bufferedOutputStream.close();
}
}

练习:使用缓冲输入输出字节流拷贝一个图片

package nyist.net;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo9 {
public static void main(String[] args) throws IOException {
	copyImage();
}
public static void copyImage() throws IOException{
	
	File file1 = new File("C:\\Users\\LENOVO\\Pictures\\Camera Roll\\假装生活在1994.png");
	File file2 = new File("E:\\假装生活在1994.png");
	FileInputStream fileInputStream = new FileInputStream(file1);
	FileOutputStream fileOutputStream = new FileOutputStream(file2);
	BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
	BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
	
	int content = 0;
	while((content = bufferedInputStream.read())!=-1){
		bufferedOutputStream.write(content);
	}
		bufferedOutputStream.close();
		bufferedInputStream.close();
}
}
我的Java研发实习面试经历 百度上海大数据研发已挂 一面技术面20分钟 试水的面试总结 58同城Java研发拿到offer 技术电面30分钟HR面10分钟 有点小信心了继续加油 大众点评Java研发拿到offer 技术一面20分钟 技术二面30分钟HR面10分钟 技术三面15分钟 总有复习不到位的地方继续努力 美团大数据部门Java研发拿到offer 网易 阶段总结真正的干货在这里 准备简历 复习重点 面试技巧 阅读详情

相关推荐

一场哔哩哔哩Java开发面试之旅,分享面试经历及复习资料

此次哔哩哔哩Java开发面试之旅可谓惊险,不过通过对大部分面试题套路的掌握,不出意外还是拿下了,下面我们来看看这些题是不是常见的不能再常见的了。这些面试题看了就能面上?当然不是,只是通过这些题让自己知道所欠缺的是什么,以及可以去看看哪些资料 操作系统相关 自旋锁和一般锁的区别是什么?为什么要使用自旋锁? 当一个线程在获取锁的时候,如果这个锁已经被其它线程获取,那么这个线程不会破门而入,而是循环等待,但是嗷嗷待哺,需要不断地嗷嗷叫判断锁是否被成功获取,直到获取到锁才会退出循环。 自旋锁通常会出现哪些问

一入Java深似海 1192

Java面试复习体系总结(2021版,持续更新)

Java面试复习体系总结(2021版) 一、Java基础 内容 Java基础(一):Java集合框架(超详细解析,看完面试不再怕) Java基础(二):迭代器(Iterator)(含使用方法详解) Java基础 (三):LinkedList(含使用方法详解) Java基础(四):ArrayList(含使用方法详解) Java基础(五):HashSet(使用方法详解) Java基础(六):HashMap(使用方法详解) Java基础(七):栈 Stack(使用方法详解)

Viper的程序员修炼手册 11万+

高薪程序员&面试题精讲系列22之说说Java的IO流,常用哪些IO流?

一. 面试题及剖析 1. 今日面试题 今天 壹哥 带各位复习一块可能会令初学者比较头疼的内容,起码当时让我很有些头疼的内容,那就是I/O流。为啥I/O流会让很多初学者头疼呢?其实主要是因为I/O流的分类实在是太多了,一会是输入流,一会是输出流,还有字节流、字符流、文件输入流,文件输出流,缓冲流.....乱七八糟一大堆,光是这些英文单词把人背的脑袋都大了。 正因为如此,面试官就喜欢在这里考察我们的Java基础,常见的I/O流题目如下: 说一下Java中的I/O流有哪些? 你常用哪些I/O流? 输入流、

一一哥 3899

Java面试复习总结14——Java IO流

目录 IO概述 什么是Java IO流 IO文件 字符流和字节流 IO管道 Java IO:网络 字节和字符数组 System.in, System.out, System.err 字符流的Buffered和Filter JavaIO流面试题 什么是IO流? 字节流和字符流的区别。 Java中流类的超类主要由那些? FileInputStream和FileOutp...

Slayer_Zhao的博客 380

基于STM32的双串口同时工作的详细指南(含完整代码示例)

STM32是STMicroelectronics(意法半导体)公司推出的一系列基于ARM Cortex-M内核的微控制器,广泛应用于嵌入式系统中。STM32系列微控制器具有高性能、低功耗和丰富的外设接口,适用于各种应用场景。USART(Universal Synchronous/Asynchronous Receiver/Transmitter)和UART(Universal Asynchronous Receiver/Transmitter)是串口通信的两种方式。

m0_57781768的博客 3805

菲涅尔波带片

菲涅尔波带片的简介,以及matlab绘制

Bestchinese的博客 1万+

Java基础面试题: 面向对象(IO流、反射)

收集大量Java经典面试题目,内容涵盖了包括了:Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 等知识点。适合准备Java面试的读者参考和复习。

m0_46013789的博客 1396

【学习笔记】一文搞懂IEPE传感器

本文介绍了IEPE(集成电路压电式)传感器的工作原理及其在振动监测中的应用。通过压电效应原理,IEPE传感器将机械振动转换为电信号,内置电荷放大器将高阻抗电荷信号转换为低阻抗电压信号输出。还介绍了传感器的三轴测量结构、4mA恒流源供电机制以及灵敏度与量程的关系,并通过风扇实验演示了故障诊断过程。实验使用USB-3123采集卡和SRD-1104信号调理器,展示了正常与异常状态下的振动数据差异,验证了IEPE传感器在设备状态监测中的有效性。

m0_62969865的博客 2817

Java面试复习5 IO和流

Java面试复习5 IO和流 声明:本面试复习都基于一本未署名的Java面试宝典所述,根据自己的理解写出了这一专栏的复习博客 介绍一下Java中都有哪几种流? 流的分类 按照流向: inputStream 输入流:读取外部数据 , outputStream 输出流:写出内部数据 按照实现功能:节点流和处理流。 节点流(文件流)(:可以直接从或者向某一个节点(或者说数据源,目的地)读写数据...

yikuki的博客 206

交流异步机VVVF变频控制simulink/matlab仿真分析

VVVF,是Variable Voltage and Variable Frequency的缩写, 意为:可变电压、可变频率,也就是变频调速系统。 VVVF控制的逆变器连接电机,通过同时改变频率和电压,达到磁通恒定(可以用反电势/频率近似表征)和控制电机转速(和频率成正比)的目的,所以多应用在变频器中,属于工业自动化领域。

Ezekiel_Mok的博客 4210

StarUML最新版汉化与破解二合一教程:5分钟搞定永久使用

本文提供StarUML最新版的高效使用指南,涵盖从安装到深度定制的全流程优化方案。包括软件获取最佳实践、界面个性化设置、核心建模技巧、团队协作策略及性能优化建议,帮助架构师和开发团队提升UML建模效率。特别推荐版本控制集成和文档自动化输出方案,适用于各类规模的项目开发。

weixin_42530732的博客 452

Java IO流面试复习

JAVA IO流面试复习

weixin_46062349的博客 170

ppt保存时嵌入字体,但找不到字体使用的位置的解决办法

摘要 当PPT提示无法保存嵌入字体时,可通过VBA代码快速定位使用该字体的文本。具体步骤如下: 按ALT+F11打开VBA编辑器,新建模块并粘贴提供的代码; 运行代码后输入目标字体名称(如“方正兰亭黑简体”); 程序将列出所有使用该字体的幻灯片编号及对应文本内容; 修改这些文本的字体即可解决保存问题。该方法高效精准,适用于排查PPT字体嵌入失败的情况。(150字)

智慧空间实验室 1401

Java 面试复习

一、Java 面向对象 面向对象都有哪些特性以及你对这些特性的理解 1)继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。 2) 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实...

不会写博客 1446

[Dify 实战] 如何在内网环境部署 Dify 应用:彻底离线的企业级方案解析

企业内网环境如何离线部署Dify?本文提供详细教程:Dify作为开源AI平台,支持完全离线部署,无需外网访问。文中介绍两种部署方式:推荐使用Docker一键部署,也可选择源码安装定制化方案。重点讲解内网模型配置(支持Ollama/GPT-OSS等)、知识库存储(MinIO/PostgreSQL)及内网代理设置,并给出常见问题排查方法。该方案适用于金融、政府等对数据安全要求高的场景,确保敏感数据不泄露,实现完全本地化的AI应用闭环。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 453

13、离散时间系统建模与分析

本文系统介绍了离散时间系统的建模与分析方法,涵盖连续时间模型的离散化过程、系统稳定性判断准则、输入输出模型转换方法以及有限脉冲响应和阶跃响应模型的应用。通过多个示例详细展示了不同系统在离散化过程中的特性变化,并探讨了采样间隔对系统动态特性的影响。此外,文章还分析了时间延迟的处理方法,并总结了关键知识点及操作步骤,为离散时间系统的实际应用提供了理论基础和实践指导。

2w3e4r5t6y的博客 190

IO流相关知识(File,Java开发者面试如何系统复习

2.字节流写数据记得一定要释放资源3.字节流写数据的两个小问题。

m0_57473261的博客 837

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

IO流复习

章节练习题及面试题 什么是java序列化,如何实现java序列化? 答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。 可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。 序列化是为了解决在对对象流进行读写操作时所引发的问题。 序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法, implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputS..

vivian233的博客 1718

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

面试复习必备之:IO流

IO流 (1)IO用于在设备间进行数据传输的操作 (2)分类: A:流向 输入流 读取数据 输出流 写出数据   B:数据类型 字节流 字节输入流 字节输出流 字符流 字符输入流 字符输出流 注意: a:如果我们没有明确说明按照什么分,默认按照数据类型分。 b:除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,              否则

u013982869的博客 316

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java面试复习思路

面试不仅是对你技术知识的测试,也是对你解决问题能力、学习能力和团队合作精神的评估。保持积极的态度,诚实回答问题,即使遇到不会的问题也不要紧张,可以尝试着说出你的思考过程。面试失利乃常事,首次尝试未必成。切莫因此而气馁,冷静分析败因踪。回顾过程细思量,自身不足逐一清。汲取经验再前行,开启下次新征程。收拾心情展自信,机会在前定能赢。

m0_49382941的博客 754

Java IO面试题及答案整理汇总

答:序列化的实现,将需要被序列化的类实现Serializable 接口,该接口没有需要实现的方法,implements Serializable 只是为了标注该对象是可被序列化的,然后使用一个输出流(如:File Output Stream)来构造一个 Object Output Stream(对象流)对象,接着,使用 Object Output Stream 对象的 write Object(Object obj)方法就可以将参数为 obj 的对象写出(即保存其状态),要恢复的话则用输入流。...

web13985085406的博客 474

java后端面试复习第一天

面试复习第一天 java基础复习 1.八大基础类型 byte shot char int long float double boolean 2.基础队列queue 分为堵塞式和非堵塞式 非堵塞式:PriorityQueue ConcurrentLinkedQueue 堵塞式:ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue ...

weixin_43802428的博客 537

15、Java 基础硬核复习:File类与IO流的核心逻辑与面试考点

本文系统梳理了Java中File类与IO流的核心知识体系及面试要点。主要内容包括:1)File类用于操作文件元数据(创建、删除、遍历等);2)IO流分类(字节流/字符流、节点流/处理流)及四大抽象基类;3)关键流类的使用(文件流、缓冲流、转换流、对象流);4)高频面试考点(字节流与字符流区别、序列化机制、乱码解决方案等)。文章强调实操对比和编码问题调试的重要性,为理解Java与外部交互奠定基础,也是学习NIO和网络编程的前提。

m0_60277481的博客 762

就因为没看这篇文章面试失败了

前言 熬夜整理了一份java基础面试题,希望大家支持,如果文中有错误希望大家指正; 公众号:知识追寻者 知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;) 一 java基础面试 1.1面向对象和面向过程的区别 面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗 资源 应用场景:单片机、嵌入式开发、Linux/Unix ; 缺点:没有面向对象易维护、易复用、易扩展 面向

知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;) 7414

面试直击之javaSE复习——IO

1.Java中有几种类型的流? 按照流的方向:输入流(inputStream)和输出流(outputStream)。 按照实现功能分:节点流(可以从或向一个特定的地方(Jiedian)读写数据,负FileReader)和处理流(是对一个已存在的流的连接和封装),通过所封装的流的功能调用实现数据读写,如Bufferedreader。处理流的构造方法总是要带一个其他的流对象做参数,一个流对象经过其他流的多此包装,成为流的连接)。 按照处理数据的单位:字节流和字符流。字节流继承于inputStream和Ou

Amanda_wr的博客 275
上一篇: java面试复习(2)之File类
下一篇: java面试复习(4)之字符流
菜鸟码农阿庆
博客等级 码龄10年 61粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值