第八节 Java IO流

第八节:SpringBoot Spring Boot是一个简化Spring应用开发的框架,提供自动配置、起步依赖和内嵌服务器等特性。文章详细介绍了Spring Boot的核心概念、快速入门方法、自动配置原理、配置文件使用、Starter机制、数据访问、Web开发和生产就绪特性。通过对比传统Spring框架,展示了Spring Boot在开发效率、配置简化等方面的优势。内容包含创建项目示例、项目结构说明、条件注解解析以及自定义Starter的方法,适合开发者快速掌握Spring Boot的核心技术并应用于微服务开发。 阅读详情

java IO简介

Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。

Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。

Java输入输出流
Java输入输出流

IO的分类
1. java.io包中阻塞型IO
2. java.nio包中的非阻塞型IO——>new IO

IO类
1. 流式部分——>IO的主体
2. 非流式部分——>辅助流式部分

IO类的分类

文件操作

class FileOpreator{
    public static void main(String[] args) throws IOException {

        //获取文件或者文件夹引用
        File file = new File("D:/百度脑图/abc");
        //创建文件
        file.createNewFile();

        //创建文件夹
        new File("D:/百度脑图/新建文件夹").mkdirs();

        //获取文件列表
        File[] files = new File("D:/百度脑图").listFiles();
        for (int i = 0; i < files.length; i++) {
            System.out.println(files[i].getName());
        }
    }
}

字节流

class FileCopy{
    /**
     * 使用字节流,单字节复制
     */
    public static void byteStreamCopy(String src,String des) throws IOException {
        FileInputStream inputStream = new FileInputStream(new File(src));
        FileOutputStream outputStream = new FileOutputStream(new File(des));
        int value=0;
        while ((value=inputStream.read())!=-1){//获取字节
            outputStream.write(value);
        }
        inputStream.close();
        outputStream.close();
        System.out.println("单字节复制成功!");
    }
    /**
     * 使用字节流,字节数组复制
     */
    public static void bytesStreamCopy(String src,String des) throws IOException {

        FileInputStream inputStream = new FileInputStream(new File(src));
        FileOutputStream outputStream = new FileOutputStream(new File(des));

        byte[] bytes = new byte[1024];
        int len;
        while((len=inputStream.read(bytes))!=-1){
            outputStream.write(bytes,0,len);
        }
        inputStream.close();
        outputStream.close();
        System.out.println("字节数组复制成功");
    }
}

字符流

public FileCopy{
 /**
     * 字符流复制,单个字符复制
     * 字符流不能拷贝流媒体,因为,字符流是先读取字节,然后转码,再输出,转码之后就不是媒体文件了。
     */
    public static void charStreamCopy(String src,String des) throws IOException {

        FileWriter fileWriter = new FileWriter(new File(des));
        FileReader fileReader = new FileReader(new File(src));
        int value;
        while ((value = fileReader.read()) != -1) {
            fileWriter.write(value);
            fileWriter.flush();
        }
        fileReader.close();
        fileWriter.close();
    }
    /**
     * 使用字符流复制,数组复制
     */
    public static void charsStreamCopy(String src,String des) throws IOException {
        FileReader fileReader = new FileReader(new File(src));
        FileWriter fileWriter = new FileWriter(new File(des));
        int len;
        char[] chars=new char[1024];
        while((len=fileReader.read(chars))!=-1){
            fileWriter.write(chars,0,len);
        }
        fileReader.close();
        fileWriter.close();


    }
}

字符流和字节流总结

package java基础;

import java.io.*;

public class 文件复制 {
    public static void main(String[] args) {
        String src="D:\\百度脑图\\Java语言编程\\JavaIO.png";
        String des="D:\\百度脑图\\JavaIO.png";
        //单字节复制
//        try {
//            FileCopy.byteStreamCopy(src,des);
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
        //字节数组赋值
//        try {
//            FileCopy.bytesStreamCopy(src,des);
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
    //单字符复制
        try {
            FileCopy.charStreamCopy(src,des);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //字符数组复制
        try {
            FileCopy.charsStreamCopy(src,des);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


class FileCopy{
    /**
     * 使用字节流,单字节复制
     */
    public static void byteStreamCopy(String src,String des) throws IOException {
        FileInputStream inputStream = new FileInputStream(new File(src));
        FileOutputStream outputStream = new FileOutputStream(new File(des));
        int value=0;
        while ((value=inputStream.read())!=-1){//获取字节
            outputStream.write(value);
        }
        inputStream.close();
        outputStream.close();
        System.out.println("单字节复制成功!");
    }
    /**
     * 使用字节流,字节数组复制
     */
    public static void bytesStreamCopy(String src,String des) throws IOException {

        FileInputStream inputStream = new FileInputStream(new File(src));
        FileOutputStream outputStream = new FileOutputStream(new File(des));

        byte[] bytes = new byte[1024];
        int len;
        while((len=inputStream.read(bytes))!=-1){
            outputStream.write(bytes,0,len);
        }
        inputStream.close();
        outputStream.close();
        System.out.println("字节数组复制成功");
    }

    /**
     * 字符流复制,单个字符复制
     * 字符流不能拷贝流媒体,因为,字符流是先读取字节,然后转码,再输出,转码之后就不是媒体文件了。
     */
    public static void charStreamCopy(String src,String des) throws IOException {

        FileWriter fileWriter = new FileWriter(new File(des));
        FileReader fileReader = new FileReader(new File(src));
        int value;
        while ((value = fileReader.read()) != -1) {
            fileWriter.write(value);
            fileWriter.flush();
        }
        fileReader.close();
        fileWriter.close();
    }
    /**
     * 使用字符流复制,数组复制
     */
    public static void charsStreamCopy(String src,String des) throws IOException {
        FileReader fileReader = new FileReader(new File(src));
        FileWriter fileWriter = new FileWriter(new File(des));
        int len;
        char[] chars=new char[1024];
        while((len=fileReader.read(chars))!=-1){
            fileWriter.write(chars,0,len);
        }
        fileReader.close();
        fileWriter.close();


    }
}

文件压缩

class FileZip{
    /**
     * 单个文件压缩
     */
    public static void singleFileZip(File srcFile,File desZipFile) throws IOException {
        //获取文件输入流
        FileInputStream inputStream = new FileInputStream(srcFile);
        //获取压缩文件输出流
        ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(desZipFile));
        //向文件中写入条目
        zipOutputStream.putNextEntry(new ZipEntry(srcFile.getName()));
        //写入文件
        byte[] bytes = new byte[1024];
        int len;
        while((len=inputStream.read(bytes))!=-1){
            zipOutputStream.write(bytes,0,len);
        }
        System.out.println("单文件压缩完成");
        inputStream.close();
        zipOutputStream.close();


    }

    /**
     * 多个文件压缩
     */
    public static void filesZip(File[] srcFiles, File zipFile) throws IOException {
        ZipOutputStream outputStream = new ZipOutputStream(new FileOutputStream(zipFile));

        for (int i = 0; i < srcFiles.length; i++) {
            FileInputStream inputStream = new FileInputStream(srcFiles[i]);

            //为压缩文件添加条目
            outputStream.putNextEntry(new ZipEntry(srcFiles[i].getName()));

            byte[] bytes = new byte[1024];
            int len;
            while((len=inputStream.read(bytes))!=-1) {
                outputStream.write(bytes, 0, len);
            }
            outputStream.closeEntry();
            inputStream.close();
        }
        System.out.println("压缩完成。");
        outputStream.close();

    }

    /**
     * 文件夹及其文件压缩
     */
    public static void singleDirFileZip(File srcDir,File zipFile) throws IOException {
        File[] files = srcDir.listFiles();
        for (int i = 0; i < files.length; i++) {
            filesZip(files,zipFile);
        }
    }

    /**
     * 多个文件夹组合压缩
     */
    public static void dirsFileZip() throws IOException {


    }

}
(Java高级教程)第三章Java网络编程-第八节:博客系统搭建(前后端分离) 在(Java高级教程)第四章必备前端知识-最终节:博客系统搭建(页面设计部分)中我们实现了一个博客系统的前端页面。这一节我们会结合Servlet和之前的前端页面搭建一个完整的博客系统。该博客系统十分简单,虽然只包含下面最基础的功能,但足以对我们之前学习内容进行串联本文完整代码见Gihub仓库:点击跳转博客登录页: 博客列表页:博客详情页:博客编辑页:博客登录和列表页展示:在用户未登录并访问其他页面时强制要求登录: 博客列表页用户信息和博客详情页作者信息展示:注销账户:发布博客:删除博客:博客数据,用户数据都 阅读详情

相关推荐

YOLO11实战 第056期-基于yolo11的无人机航拍铁路障碍物检测实战-数据集&源码&系统

召回率曲线帮助评估模型在目标检测任务中,检测到真正目标的能力。通过这条曲线,可以评估模型在目标检测任务中的整体性能,并找到合适的置信度阈值,以在精确率和召回率之间做出最佳平衡。PR曲线越接近右上角,模型性能越好,曲线下方的面积越大,说明模型在不同置信度下的。这条曲线显示了随着置信度的增加,每个类别的召回率先变化较小,然后在某个点之后迅速下降。通过这条曲线,可以选择合适的置信度阈值,以优化模型的检测结果,平衡精确率和召回率。曲线都显示了随着召回率的增加,精确度略有下降的趋势,但整体上精确度保持在很高的水平。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 157

Java 8章 IO 编程题

题目一利用DataInputStream类和BufferedInputStream类编写一个程序,实现从键盘读入一个字符串,在显示器上显示前两个字符的Unicode码以及后面的所有字符。结果请输入字符串 asdfjkl 字符一的Unicode码:97 字符二的Unicode码:115 d f j k l思路DataInputStream 类继承自 FilterInputStr

SmacUL的博客 1823

Win10 + Linux 双系统删除(Linux)

删除Linux所使用的磁盘分区 进入此电脑->计算机->管理->磁盘管理

weixin_52247624的博客 943

第八节:序列化、IO、文件

第八节:序列化、IO、文件 输入字节流: ---------| InputStream 所有输入字节流的基类 抽象类 -------------| FileInputStream 读取文件数据的输入字节流 -------------| BufferedInputStream 缓冲输入字节流 缓冲输入字节流的出现主要是为了提高读取文件数据的效率。(内部维护了一个8KB的字节数组而已) 注意...

impermanences的博客 180

C语言入门—初识C语言

一、C语言概述 1、什么是C语言 语言是用来交流沟通的,有一方说,有一方听。必须要两方参与。(自言自语的除外) 语言是人与人交流,而C语言是人与机器交流 语言有独特的语法规则和定义,双方必须遵循这些规则和定义才能实现真正的交流。 接下来首先了解下计算机的组成: 2、计算机介绍 2.1、计算机结构组成 2.2、计算机系统组成 2.3、程序的指令 指令是对计算机进行程序控制的最小单元 计算机的指令系统是指所有指令的集合 程序是指为完成某一项特定任务而用某种言语编写的一组指令序列 3、C语言发展历程 3.

jun319817的博客 1035

使用FPGA实现MIPI DSI接口

通过使用FPGA,我们可以实现MIPI DSI接口,并在FPGA上生成相应的时序和电平转换电路。通过使用FPGA,我们可以实现MIPI DSI接口,并在FPGA上生成相应的时序和电平转换电路。在本文中,我们将探讨如何使用FPGA实现MIPI DSI接口,并提供相应的源代码。根据不同的发送状态,我们设置相应的输出信号。请注意,这只是一个基本的示例,用于说明如何使用FPGA实现MIPI DSI接口的发送功能。请注意,这只是一个基本的示例,用于说明如何使用FPGA实现MIPI DSI接口的发送功能。

ZdqDeveloper的博客 1700

19.各类其他流

IO流:缓冲流等 第一节 转换流 作用: a.实现字节流到字符流的转换 b.解决中文乱码的问题 中文编码 gb2312 (采用两个字节保存字符汉字,英文数字一个字节) GBK (采用两个字节保存字符汉字,英文数字一个字节) GB18030 (英文数字都是一个字节,中文是两个或四个字节) Unicode字符集(包含每个国家的所有字符)国际通用 unicode编...

松松的博客 569

Spark Sql 连接mysql

转载请务必注明原创地址为:http://dongkelun.com/2018/03/21/sparkMysql/ 1、基本概念和用法(摘自spark官方文档中文版) Spark SQL 还有一个能够使用 JDBC 从其他数据库读取数据的数据源。当使用 JDBC 访问其它数据库时,应该首选 JdbcRDD。这是因为结果是以数据框(DataFrame)返回的,且这样 Spark SQL操作轻松或便......

主要分享大数据相关的知识,如Spark、Hudi 1万+

第八节 Java JDBC

第八节 Java JDBC1. JDBC 概念2. JDBC 常用API2.1 Driver 接口2.2 DriverManager 类2.3 Connection 接口2.4 Statement 接口2.5 PreparedStatement 接口2.6 ResultSet 接口3. JDBC 编程步骤4. 编写第一个JDBC程序 1. JDBC 概念 由来:用来增强数据库的移植性,如果不用JDBC我们直接和底层的数据进行连接,当我们换数据库的时候就需要去更改相关代码。因为底层的驱动不同,对应的接口

fancy_hacker的博客 425

复合材料成型仿真案例大全|覆盖模压 / RTM / 固化 / SMC,实操步骤直接抄

本文整理了一套完整的PAM-COMPOSITE复合材料成型仿真案例合集,涵盖模压、RTM、固化变形、SMC四大核心工艺,包含6个实操案例和1个全流程衔接案例。每个案例都配有详细的操作步骤、核心要点和缺陷排查方法,适用于不同水平的工程师和研究人员。案例内容源自实际项目,可直接复用,帮助用户快速掌握复合材料成型仿真的关键技术,解决褶皱、纤维堆积、气泡残留等常见问题,实现从铺层设计到强度校核的全流程仿真闭环。特别针对热固性/热塑性材料差异、RTM衍生工艺、链式仿真等难点提供了专项解决方案。

源代码杀手的博客 319

鸿蒙应用发布实战:应用热更新的实现

在移动应用开发领域,应用更新是持续交付价值的关键环节。传统的应用更新方式需要用户手动下载完整安装包,不仅用户体验差,而且更新率往往不理想。热更新技术(也称为OTA更新)允许应用在不重新安装的情况下动态更新部分功能,极大提升了用户体验和迭代效率。本文专注于鸿蒙操作系统下的应用热更新实现方案,涵盖从原理到实践的完整知识体系。鸿蒙热更新的技术架构差分更新算法实现动态部署机制实际项目中的最佳实践安全与性能优化策略首先介绍鸿蒙热更新的背景和核心概念深入分析技术原理和算法实现。

操作系统内核探秘的博客 965

【软件工程自考】java语言基础第八节

回顾之前用过的输出方法有System.out,Scanner当程序需要读取数据的时候就会开启一个通向数据源的流,这个数据源可以是文件、内存或是网络连接、类似的←。当程序需要写入数据的时候,就会开启一个通向目的地的流→流的分类方法有三种1.从流的方向划分:输入流、输出流2.从流的分工划分:节点流、处理流四种:InputStream,OutputStream,Reader,Writerjava之中标准的输入输出流:InputStream类型的,代表标准输入流,这个流是已经打开了的,默认状态对应键盘输入。

weixin_56591289的博客 690

第244篇 视觉SLAM后端之BA优化——Bundle Adjustment的原理

本文介绍了SLAM后端优化中的Bundle Adjustment(BA)技术。BA通过同时优化相机位姿和3D路标点位置,最小化重投影误差,解决前端估计的累积误差问题。文章详细讲解了BA的数学原理,包括目标函数构建、Gauss-Newton法和Levenberg-Marquardt法求解过程,以及利用稀疏性和Schur补加速计算的关键技术。对比了全量BA和增量BA的优缺点,并介绍了Ceres、g2o等工程实现工具。BA作为SLAM后端的核心算法,其理解深度直接影响系统性能优化能力。

郑伟强dev的专栏 346

java i o流异常问题_第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架...

前言大家好,给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢JAVA 异常try...catch...finally结构的使用方法class Test{public static void main(String args[]){try{int i = 1 / 0;}catch(Exception e){e.printStackTrace();}fina...

weixin_29529047的博客 158

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架

前言大家好,我是 Vic,今天给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢JAVA 异常try...catch...finally结构的使用方法class Test{ public static void main(String args[]){ try{ int i = 1 / 0; } catch(Exception e){ ...

程序员哆啦A梦,蓝胖子 436

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

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

全网最火Java面试题

第一部分 JAVA 基础第一节 IO/NIO第二节 反射第三节 多线程第四节 集合第五节 Web第六节 其他第七节 关键字第八节 操作符第九节 基础类型第十节 异常第十...

hnjsjsac的博客 285

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java基础课第八节

音乐管理系统———用户管理的完善 这节课主要是对音乐管理系统的用户管理进行了完善,添加了用户添加,用户查询,用户修改以及用户删除 其主要代码如下: public List yhcx() throws Exception{ Listusers=new ArrayList<>(); Connection connection =DBUtil.getConection(); String ...

qqqnmn的博客 145

第八节多线程和反射

第八章线程和反射

小宋自学java 301

Java系列个人总结

Java系列

小宋自学java 365

docker portainer_docker随手笔记第十一节 portainer.io安装使用,比k8s简单

docker随手笔记第一节 docker概念及安装docker随手笔记第二节 docker常用命令解析docker随手笔记第三节 docker构建java镜像docker随手笔记第四节 docker安装mysql5.7docker随手笔记第五节 docker安装redis4.0docker随手笔记第六节 docker安装jenkinsdocker随手笔记第七节 jenkins通过git部署java...

weixin_39674190的博客 3239

计算机基础学习 第二节 Java等编程知识学习 汇总

总结目录 目录 Java基础知识 序言. Java基础知识 第一节 Java的一些基础常识与准备. Java基础知识 第二节 认识Java代码及一些变量. Java基础知识 第三节 面向对象的复习. Java基础知识 第四节 多线程的复习. Java基础知识 第五节 Java API与集合的复习. Java基础知识 第六节 IO流. Java基础知识 第七节 GUI的复习. Java基础知识 第八...

羽落清泫的博客 357

Centos下Java环境搭建课程——第八节:Centos下Redis安装

1、下载Redis cd /usr/local wget http://download.redis.io/releases/redis-6.0.6.tar.gz 2、解压 tar -zxvf redis-6.0.6.tar.gz 3、编译安装 cd redis-6.0.6 make make install 4、修改配置 vim redis.conf #修改ip绑定 #bing 127.0.0.1 --注释掉 #打开远程访问模式,这个根据自己的需求操作 protect.

chenchao_JAVA的博客 214

第八节 SpringBoot使用过滤器与拦截器

一、过滤器Filter 创建过滤器的方法很简单,也传统的WEB项目一样,实现 Filter接口即可 package com.zhoutianyu.learnspringboot.filter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.*; import ja...

大宇的博客,欢迎访问 1219

【Java框架型项目从入门到装逼】第八节 - 用EasyUI绘制主界面

###1.引入资源包 在上一节中,我们把基本的框架都搭好了,用了Spring,SPringMVC。这一节,我们先来画页面,前端框架采用EasyUI来实现。 easyui是一种基于jQuery的用户界面插件集合,使用easyui我们就不需要写很多代码,只需要通过编写一些简单HTML标记,就可以定义用户界面。 现在,我们把easyui需要的资源包拷贝进来。 ###2.绘制主界面 界面的话,我们就用html来实现吧,在WebContent目录下新建一个页面叫index.html。 目录结构如下: 代码: &

java小白翻身 284

acm集训队课程设置--第八节课

acm集训队课程设置--第八节课 本节主要内容:关于数论的学习。实现进制转换,最大公约数、最小公倍数求法等,还有大数相加减乘除,素数问题,斐波那契数列,容斥定理;进制转换n进制小数将任意十进制正小数分别转换成2,3,4,5,6,7,8,9进制正小数,小数点后保留8位,并输出。  例如:若十进制小数为0.795,则输出:  十进制正小数 0.795000 转换成 2 进制数为: 0.11001011...

stay hungry ! stay foolish! 747
上一篇: 第九节 Java多线程
下一篇: 第一节 python环境安装和包管理器
江城子_Lay
博客等级 码龄9年 19粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值