java学会这些,我就入门啦!(基础篇五)流与IO流

简介: java学会这些,我就入门啦!(基础篇五)流与IO流

  流(Stream)

  流代表着任何有能力产出数据的源或者也能力接收数据的源对象,作用是为了将数据源跟目的地建立一个输送的通道。

  流中比较重要的就是IO流了。下面我们先讲一讲IO流

  IO流根据方向分为输入流与输出流,这个很好理解,输入进来的叫输入流,反之,向外输出的,叫输出流。

  根据形式:分为字符流,和字节流。这个也不难,字节流是基本就是无法用字符表示的,图片、视频、音频等,而字符流,一般可以用字符表示的,txt,xlsx,java,html等。

根据功能不同,可分为:节点流,处理流。节点流是直接操作文件,处理流是连接已经存在的流。

  下图是IO流的四大流:


7cf233789fa960ff0e84531cb3202883_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

  四大流都是抽象类,不能直接创建对象,需要去new一个他的实现类。本文讲解的一般都是概念性的内容,如果有需要具体代码的亲们,可以留言找我,下面我会放一些经常会问的关于IO流的初级面试题(高级的后续我会写)

1.流按照实现功能分为哪两种,分别举例说明:

答:节点流,处理流

节点流:OutputStream

处理流:OutputStreamWriter

2.BufferedReader属于哪种流,它主要是用来做什么的,它里面有那些经典的方法

答:属于处理流中的缓冲流,可以将读取的内容存在内存里面,有readLine()方法。

3.如果我要对字节流进行大量的从硬盘读取,要用那个流,为什么?

答:BufferedInputStream 使用缓冲流能够减少对硬盘的损伤.

4.如果我要打印出不同类型的数据到数据源,那么最适合的流是那个流,为什么?

答:Printwriter 可以打印各种数据类型.

5.把一个对象写入数据源或者从一个数据源读出来,用哪两个流?

答:ObjectInputStream ObjectOutputStream.

6.流一般需要不需要关闭,如果关闭的话在用什么方法,一般要在那个代码块里面关闭比较好,处理流是怎么关闭的,如果有多个流互相调用传入是怎么关闭的?

答:流一旦打开就必须关闭,使用close方法,放入finally语句块(finally 语句一定会执行),调用的处理流就关闭处理流,多个流互相调用只关闭最外层的流.

7.Java中的所有的流可以分为几大类,它们的名字是什么,各代表什么?

答:字节输入流 InputStream

字节输出流 OutputStream

字符输入流 Reader

字符输出流 Writer

8.用什么把对象动态的写入磁盘中,写入要实现什么接口。

答:ObjectInputStream,需要实现Serializable接口。

f4e261d3c2f455c1e73bada1de39f019_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.jpg

关注我,每天变强一点点!

微信扫一扫

关注该公众号


相关文章
|
18天前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
182 0
|
2月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
340 0
|
1月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
133 1
|
2月前
|
前端开发 Java 数据库连接
帮助新手快速上手的 JAVA 学习路线最详细版涵盖从入门到进阶的 JAVA 学习路线
本Java学习路线涵盖从基础语法、面向对象、异常处理到高级框架、微服务、JVM调优等内容,适合新手入门到进阶,助力掌握企业级开发技能,快速成为合格Java开发者。
429 3
|
3月前
|
NoSQL Java 关系型数据库
Java 从入门到进阶完整学习路线图规划与实战开发最佳实践指南
本文为Java开发者提供从入门到进阶的完整学习路线图,涵盖基础语法、面向对象、数据结构与算法、并发编程、JVM调优、主流框架(如Spring Boot)、数据库操作(MySQL、Redis)、微服务架构及云原生开发等内容,并结合实战案例与最佳实践,助力高效掌握Java核心技术。
341 0
|
3月前
|
Java 测试技术 API
Java IO流(二):文件操作与NIO入门
本文详解Java NIO与传统IO的区别与优势,涵盖Path、Files类、Channel、Buffer、Selector等核心概念,深入讲解文件操作、目录遍历、NIO实战及性能优化技巧,适合处理大文件与高并发场景,助力高效IO编程与面试准备。
|
3月前
|
Java 编译器 API
Java Lambda表达式与函数式编程入门
Lambda表达式是Java 8引入的重要特性,简化了函数式编程的实现方式。它通过简洁的语法替代传统的匿名内部类,使代码更清晰、易读。本文深入讲解Lambda表达式的基本语法、函数式接口、方法引用等核心概念,并结合集合操作、线程处理、事件回调等实战案例,帮助开发者掌握现代Java编程技巧。同时,还解析了面试中高频出现的相关问题,助你深入理解其原理与应用场景。
|
2月前
|
Java API 数据库
2025 年最新 Java 实操学习路线,从入门到高级应用详细指南
2025年Java最新实操学习路线,涵盖从环境搭建到微服务、容器化部署的全流程实战内容,助你掌握Java 21核心特性、Spring Boot 3.2开发、云原生与微服务架构,提升企业级项目开发能力,适合从入门到高级应用的学习需求。
525 0
|
2月前
|
监控 Java API
2025 年全新出炉的 Java 学习路线:从入门起步到实操精通的详细指南
2025年Java学习路线与实操指南,涵盖Java 21核心特性、虚拟线程、Spring Boot 3、微服务、Spring Security、容器化部署等前沿技术,助你从入门到企业级开发进阶。
548 0
|
3月前
|
SQL Java 数据库连接
Java IO流(一):字节流与字符流基础
本文全面解析Java IO流,涵盖字节流、字符流及其使用场景,帮助开发者理解IO流分类与用途,掌握文件读写、编码转换、异常处理等核心技术,通过实战案例提升IO编程能力。