《从零开始的Java世界》10File类与IO流

《从零开始的Java世界》系列主要讲解Javase部分,从最简单的程序设计到面向对象编程,再到异常处理、常用API的使用,最后到注解、反射,涵盖Java基础所需的所有知识点。学习者应该从学会如何使用,到知道其实现原理全方位式地学习,才能为以后框架的学习打下良好的基础。

目录

1.File类

1.1概述

1.2实例化

1.2.1构造器

1.3常用方法

2.IO流

2.1概述

2.2分类

2.3流的API

3.文件流(节点流)

3.1FileReader

3.2FileWriter

3.3FileInputStream及FileOutputStream

4.处理流

4.1缓冲流

4.1.1实现步骤

4.1.2实现代码

4.2转换流

4.2.1介绍

4.2.2实现

4.3对象流

4.3.1说明

4.3.2对象的序列化机制

4.3.3使用

序列化过程

反序列化过程

​编辑


1.File类

1.1概述

1.2实例化

1.2.1构造器

1.3常用方法

 

2.IO流

2.1概述

2.2分类

2.3流的API

3.文件流(节点流)

3.1FileReader

读写文本文件用字符流

@Testpublic void test(){FileReader fr = null;try {//1.创建File类对象,对应一个文件File file = new File("hello.txt");//2.创建输入型的字符流,用于读取数据fr = new FileReader(file);//3.读取数据,显示在控制台上//方式一:
//            int data = fr.read();
//            while (data != -1){
//                System.out.print((char)data);
//                data = fr.read();//方式二:char buffer[] = new char[5];int len = fr.read(buffer);while (len != -1){for(int i = 0; i < len; i++){System.out.print(buffer[i]);}len = fr.read(buffer);}} catch (IOException e) {e.printStackTrace();} finally {//4.关闭流资源try {fr.close();} catch (IOException e) {e.printStackTrace();}}}

3.2FileWriter

@Test
public void test2() {FileWriter fw = null;try {//1.创建File对象,指明操作的文件名称File file = new File("info.txt");//2.创建输出流fw = new FileWriter(file);//3.输出过程fw.write("ykx666");} catch (IOException e) {e.printStackTrace();}//4.关闭资源try {fw.close();} catch (IOException e) {e.printStackTrace();}
}

3.3FileInputStream及FileOutputStream

读写非文本文件(如图片、音视频)用字节流

@Test
public void test(){FileInputStream fis = null;FileOutputStream fos = null;try {//1.创建相关的File类对象File file1 = new File("sdz.jpg");File file2 = new File("copy_sdz.jpg");//2.创建相关字节流fis = new FileInputStream(file1);fos = new FileOutputStream(file2);//3.数据的输入和输出byte[] buffer = new byte[1024];int len;while((len = fis.read(buffer)) != -1)fos.write(buffer,0,len);System.out.println("复制成功!");}catch (IOException e) {e.printStackTrace();}//4.关闭资源try {fis.close();} catch (IOException e) {e.printStackTrace();}try {fos.close();} catch (IOException e) {e.printStackTrace();}
}

4.处理流

4.1缓冲流

4.1.1实现步骤

4.1.2实现代码

/** 使用BufferedInputStream/BufferedOutputStream复制一张图片* @author yangkx* @date 2023-05-22 19:48*/
@Test
public void test(){FileInputStream fis = null;FileOutputStream fos = null;BufferedInputStream bis = null;BufferedOutputStream bos = null;try {//1.创建相关的File类对象File file1 = new File("sdz.jpg");File file2 = new File("copy_sdz2.jpg");//2.创建相关字节流、缓冲流fis = new FileInputStream(file1);fos = new FileOutputStream(file2);bis = new BufferedInputStream(fis);bos = new BufferedOutputStream(fos);//3.数据的输入和输出byte[] buffer = new byte[1024];int len;while((len = bis.read(buffer)) != -1)bos.write(buffer,0,len);System.out.println("复制成功!");}catch (IOException e) {e.printStackTrace();}//4.关闭资源//先关外层try {bis.close();} catch (IOException e) {e.printStackTrace();}try {bos.close();} catch (IOException e) {e.printStackTrace();}try {fis.close();} catch (IOException e) {e.printStackTrace();}try {fos.close();} catch (IOException e) {e.printStackTrace();}
}

4.2转换流

4.2.1介绍

4.2.2实现

4.3对象流

4.3.1说明

4.3.2对象的序列化机制

4.3.3使用

序列化过程

反序列化过程

内容来源于尚硅谷javase课程的ppt,仅作为学习笔记参考

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

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

相关文章

LAMP(Linux+Apache+MySQL+PHP)环境介绍、配置、搭建

LAMP(LinuxApacheMySQLPHP)环境介绍、配置、搭建 LAMP介绍 LAMP是由Linux&#xff0c; Apache&#xff0c; MySQL&#xff0c; PHP组成的&#xff0c;即把Apache、MySQL以及PHP安装在Linux系统上&#xff0c;组成一个环境来运行PHP的脚本语言。Apache是最常用的Web服务软件&a…

纸箱码垛机:从传统到智能,科技如何助力产业升级

随着科技的飞速发展&#xff0c;传统工业领域正经历着一场重要的变革。作为物流行业重要一环的纸箱码垛机&#xff0c;其从传统到智能的转型升级&#xff0c;不仅提高了生产效率&#xff0c;还大幅降低了人工成本&#xff0c;为产业升级提供了强大助力。星派将探讨纸箱码垛机的…

【Unity】UnityEvent(一)

​UnityEvent----高效管理游戏事件的利器 在游戏开发中&#xff0c;事件系统是实现各种功能的关键组成部分。它允许我们将不同对象之间的交互解耦&#xff0c;使得代码更加模块化和易于维护。而UnityEvent作为Unity引擎提供的一种强大的事件系统工具&#xff0c;为开发者提供了…

CPDA|0到1突破:构建高效数据分析体系的秘密武器

在现今信息爆炸的时代&#xff0c;数据已经渗透到了我们生活的方方面面&#xff0c;成为了决策、创新和竞争优势的关键。因此&#xff0c;构建一套高效的数据分析体系&#xff0c;对于企业和个人而言&#xff0c;都是至关重要的。那么&#xff0c;如何在众多的数据海洋中脱颖而…

分类神经网络1:VGGNet模型复现

目录 分类网络的常见形式 VGG网络架构 VGG网络部分实现代码 分类网络的常见形式 常见的分类网络通常由特征提取部分和分类部分组成。 特征提取部分实质就是各种神经网络&#xff0c;如VGG、ResNet、DenseNet、MobileNet等。其负责捕获数据的有用信息&#xff0c;一般是通过…

5分钟——测试搭建的springboot接口(二)

5分钟——测试搭建的springboot接口&#xff08;二&#xff09; 1. 查看数据库字段2. 测试getAll接口3. 测试add接口4. 测试update接口5. 测试deleteById接口 1. 查看数据库字段 2. 测试getAll接口 3. 测试add接口 4. 测试update接口 5. 测试deleteById接口

Docker 开启远程安全访问

说明 如果你的服务器是公网IP&#xff0c;并且开放了docker的远程访问&#xff0c;如果没有进行保护是非常危险的&#xff0c;任何人都可以向你的docker中推送镜像、运行实例。我曾开放过阿里云服务器中docker的远程访问权限&#xff0c;在没有开启保护的状态下&#xff0c;几…

用 LMDeploy 高效部署 Llama-3-8B,1.8倍vLLM推理效率

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学&#xff0c;针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总…

Springboot 整合 Quartz框架做定时任务

在Spring Boot中整合Quartz&#xff0c;可以实现定时任务调度的功能 1、首先&#xff0c;在pom.xml文件中添加Quartz和Spring Boot Starter Quartz的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo…

一些好听且有心意的英文全名Burwood新南威尔士州伯伍德喝酒上脸就是乙醛中毒1. 康奈尔大学官宣恢复标化要求2. 香港城市大学(东莞)正式设立!

目录 一些好听且有心意的英文全名 Burwood新南威尔士州伯伍德 喝酒上脸就是乙醛中毒 1. 康奈尔大学官宣恢复标化要求 2. 香港城市大学&#xff08;东莞&#xff09;正式设立&#xff01; 一些好听且有心意的英文全名 在选择好听且有意义的英文全名时&#xff0c;我们可…

synchronized的底层原理

目录 介绍 实现原理 对象头 Monitor&#xff08;监视器&#xff09; 锁升级 偏向锁 轻量级锁 重量级锁 锁的优缺点 介绍 synchronized 是 Java 中的关键字&#xff0c;它用于锁定代码块或方法&#xff0c;以确保同一时刻只有一个线程可以进入被锁定的部分。这在多线程…

css盒子设置圆角边框的方法

前言 欢迎来到我的博客 个人主页&#xff1a;北岭敲键盘的荒漠猫-CSDN博客 本文为我整理的设置圆角边框的方法 需求描述 我们在设置盒子边框时&#xff0c;他总是方方正正的。 我们想让这个直直的边框委婉一点该怎么办呢。这个就提到了我们这篇文章讲的东西&#xff1a; bord…

聚观早报 | OpenAI在印度开始招聘;特斯拉将发布一季度财报

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 4月23日消息 OpenAI在印度开始招聘 特斯拉将发布一季度财报 理想汽车全线产品降价 优酷升级悬疑剧场为白夜剧场 …

ffmpeg支持MP3编码的方法

目录 现象 解决办法 如果有编译包没有链接上的情况 现象 解决办法 在ffmpeg安装包目录下 &#xff0c;通过./configure --list-encoders 和 ./configure --list-decoders 命令可以看到&#xff0c;ffmpeg只支持mp3解码&#xff0c;但是不支持mp3编码。 上网查寻后发现&…

C++ :设计模式实现

文章目录 原则单一职责原则开闭原则依赖倒置原则接口隔离原则里氏替换原则 设计模式单例模式观察者模式策略模式代理模式 原则 单一职责原则 定义&#xff1a; 即一个类只负责一项职责 问题&#xff1a; 类 T 负责两个不同的职责&#xff1a;职责 P1&#xff0c;职责 P2。当…

Tomcat源码解析——一次请求的处理流程

在上一篇文章中&#xff0c;我们知道Tomcat在启动后&#xff0c;会在Connector中开启一个Acceptor(接收器)绑定线程然后用于监听socket的连接&#xff0c;那么当我们发出请求时&#xff0c;第一步也就是建立TCP连接&#xff0c;则会从Acceptor的run方法处进入。 Acceptor&…

使用CSS+HTML完成导航栏

HTML <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>导航栏示例</title> &l…

07 内核开发-避免命名冲突经验技巧分享

07 内核开发-避免命名冲突经验技巧分享 目录 07 内核开发-避免命名冲突经验技巧分享 1.如何在内核开发过程中&#xff0c;避免命名冲突 2. 背景 3.避免方法 4.了解下 文件/proc/kallsyms 5.总结 课程简介&#xff1a; Linux内核开发入门是一门旨在帮助学习者从最基本的…

java-异常

一、异常的概念及分类 Exception&#xff1a;异常&#xff0c;代表程序可能出现的问题 Exception分为两类&#xff1a; 1、运行时异常&#xff1a;RuntimeException以及其子类&#xff0c;编译阶段不会出现异常提醒&#xff0c;在运行阶段会出现异常提醒 2、编译时异常&…

基于SpringBoot+Vue网上商城系统的设计与实现

系统介绍 随着社会的不断进步与发展&#xff0c;人们经济水平也不断的提高&#xff0c;于是对各行各业需求也越来越高。特别是从2019年新型冠状病毒爆发以来&#xff0c;利用计算机网络来处理各行业事务这一概念更深入人心&#xff0c;由于用户工作繁忙的原因&#xff0c;去商…