当前位置: 首页 > news >正文

io流 多线程

目录

一、io流

1.什么是io流

2.流的方向

i.输入流

ii.输出流

3.操作文件的类型

i.字节流

 1.拷贝

ii.字符流

​3.字符流输出流出数据

4.字节流和字符流的使用场景

5.练习

6.缓冲流

1.字节缓冲流拷贝文件

2.字符缓冲流特有的方法

1.方法

2.总结

7.转换流基本用法

8.小练习;

​编辑二、多线程

1.实现方式

i.继承Thread类的方法进行实现

ii.实现Runnable接口的方式进行实现

iii.利用Callable接口和Future接口方式实现

vi.三种方式对比

v.常见的成员方法

2.守护线程等

i.守护线程

​ii.礼让线程

iii.插入线程

vi.线程的生命周期​编辑

v.线程的安全

iv.同步方法

三、线程的锁


一、io流

1.什么是io流

io流:存储和读取数据的解决方案

2.流的方向

i.输入流

ii.输出流

字节输出流基本方法

  FileOutputStream fos=new FileOutputStream("a.txt");fos.write(97);fos.close();

3.操作文件的类型

i.字节流

 1.拷贝

ii.字符流

空参read

带参read

3.字符流输出流出数据

4.字节流和字符流的使用场景

5.练习

一:

public class Main {public static void main(String[] args) throws IOException {//拷贝一个文件夹,考虑子文件夹//1.创建对象表示数据源File src=new File("D:\\aaa\\src");//2.创建对象表示目的地File dest=new File("D:\\aaa\\dest");//3.调用方法开始拷贝copydir(src,dest);}
/*
作用:拷贝文件
参数一:数据源
参数二:目的地*/private static void copydir(File src, File dest) throws IOException {dest.mkdirs();//如果不存在则创建,如果存在则创建失败//递归//1.进入数据源File[] files = src.listFiles();//会把所有的文件还// 有文件夹的路径放到数组当中给你返回好//2.遍历数组for (File file : files) {if (file.isFile()){//3.判断文件,拷贝FileInputStream fis=new FileInputStream(file);FileOutputStream fos=new FileOutputStream(new File(dest,file.getName()));byte[] bytes=new byte[1024];int len;while((len=fis.read(bytes))!=-1){fos.write(bytes,0,len);}fos.close();fis.close();}else{//判断文件夹,递归copydir(file,new File(dest,file.getName()));}}}
}

二:

^异或:两边相同true两边不同false,两次同一个是原来的数据

加密:如以下代码

解密:再创一个c,将a改成b,b改成c就行了

 FileInputStream fis=new FileInputStream("D:\\java\\io流\\myio\\a.txt");FileOutputStream fos=new FileOutputStream("D:\\java\\io流\\myio\\b.txt");//加密处理int b;while((b=fis.read())!=-1){fos.write(b^2);}fos.close();fis.close();

三:

注意:初始文件里面不要换行否则会隐含\r\n

代码:

//读取数据FileReader fr=new FileReader("D:\\java\\io流\\myio\\a.txt");StringBuilder sb=new StringBuilder();int ch;while((ch= fr.read())!=-1){sb.append((char)ch);}fr.close();System.out.println(sb);//排序Integer[] arr = Arrays.stream(sb.toString().split("-")).map(Integer::parseInt)//方法引用.sorted().toArray(Integer[]::new);//再收集到Integer的数组里面//写出数据FileWriter fw=new FileWriter("D:\\java\\io流\\myio\\a.txt",true);String s = Arrays.toString(arr).replace(", ","-") ;String result= s.substring(1,s.length()-1);fw.write("\r\n");fw.write(result);fw.close();

6.缓冲流

1.字节缓冲流拷贝文件

更加高级的知识点

2.字符缓冲流特有的方法

1.方法
2.总结

7.转换流基本用法

8.小练习;

二、多线程

1.实现方式

i.继承Thread类的方法进行实现

打印出来的数据是一会1一会2的

ii.实现Runnable接口的方式进行实现

iii.利用Callable接口和Future接口方式实现

vi.三种方式对比

v.常见的成员方法

2.守护线程等

i.守护线程

ii.礼让线程

让其尽可能均匀

iii.插入线程

vi.线程的生命周期

v.线程的安全

eg:买票:如下代码,结果就是很多票数重复了

小细节:

也可以这样写

注意:不同的线程互斥地访问临界资源,这是互斥。所有的线程都必须等待其他线程卖了票之后才能卖票,这是同步

//重写方法快捷键:Alt+回车

iv.同步方法

ctrl+alt+m快捷创建函数键

三、线程的锁

相关文章:

io流 多线程

目录 一、io流 1.什么是io流 2.流的方向 i.输入流 ii.输出流 3.操作文件的类型 i.字节流 1.拷贝 ii.字符流 ​3.字符流输出流出数据 4.字节流和字符流的使用场景 5.练习 6.缓冲流 1.字节缓冲流拷贝文件 2.字符缓冲流特有的方法 1.方法 2.总结 7.转换流基本用法…...

人工智能、机器学习、神经网络、深度学习和卷积神经网络的概念和关系

人工智能(Artificial Intelligence,缩写为AI)--又称为机器智能,是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是智能学科重要的组成部分,它企图了解智能的实质…...

对话大模型Prompt是否需要礼貌点?

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 基于Dify的QA数据集构建(附代码)Qwen-2-7B和GLM-4-9B&#x…...

【驱动篇】龙芯LS2K0300之ADC驱动

实验目的 由于LS2K0300久久派开发板4.19内核还没有现成可用的ADC驱动,但是龙芯官方的5.10内核已经提供了ADC驱动,想要在4.19内核使用ADC就要参考5.10内核移植驱动,本次实验主要是关于ADC驱动的移植和使用 驱动移植 主要的驱动代码主要有3个…...

Python入门 2024/7/3

目录 for循环的基础语法 遍历字符串 练习:数一数有几个a range语句 三个语法 语法1 语法2 语法3 练习:有几个偶数 变量作用域 for循环的嵌套使用 打印九九乘法表 发工资案例 continue和break语句 函数的基础定义语法 函数声明 函数调用 …...

Go 语言 Map(集合)

Go 语言 Map(集合) Map 是 Go 语言中一种非常重要的数据结构,它用于存储键值对。在 Go 中,Map 是一种无序的键值对的集合,其中每个键都是唯一的,而值则可以是任何类型。Map 是 Go 语言的内置类型,使用起来非常方便,同时也是许多 Go 程序中不可或缺的一部分。 Map 的声明…...

SpringCloud学习Day7:Seata

概念 Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务 工作流程 TC以Seata服务器形式独立部署,TM和RM则是以Seata Client的形式集成在微服务中运行...

【ubuntu中关于驱动得问题】—— 如何将nouveau驱动程序加入黑名单和安装NVIDIA显卡驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、nouveau驱动程序加入黑名单二、安装NVIDIA显卡驱动总结 前言 NVIDIA显卡驱动是用于支持和优化NVIDIA显卡在计算机系统中运行的关键软件组件。该驱动程序能…...

LabVIEW从测试曲线中提取特征值

在LabVIEW中开发用于从测试曲线中提取特征值的功能时,可以考虑以下几点: 数据采集与处理: 确保你能够有效地采集和处理测试曲线数据。这可能涉及使用DAQ模块或其他数据采集设备来获取曲线数据,并在LabVIEW中进行处理和分析。 特…...

【应届应知应会】SQL常用知识点50道

SueWakeup 个人主页:SueWakeup 系列专栏:借他一双眼,愿这盛世如先生所愿 个性签名:人生乏味啊,我欲令之光怪陆离 本文封面由 凌七七~❤ 友情提供 目录 数据库的概念 (什么是数据库) RDBMS NOSQL 数据库的分类 …...

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】 购物车需求描述购物车数据结构数据Model抽取实现流程(参照京东)代码实现参考 购物车需求描述 用户可以在登录状态下将商品添加到购物车【用户购物…...

科技赋能智慧应急:“数字孪生+无人机”在防汛救灾中的应用

近期,全国多地暴雨持续,“麻辣王子工厂停工”“水上派出所成水上的派出所了”等相关词条冲上热搜,让人们看到了全国各地城市内涝、洪涝带来的严重灾情。暴雨带来的影响可见一斑,潜在的洪水、泥石流、山体滑坡等地质灾害更应提高警…...

urfread刷算法|构建一棵树

大意 示例标签串: 处理结果: 题目1 根据标签串创建树 需求 需求:给出一个字符串,将这个字符串转换为一棵树。 字符串可以在代码里见到,是以#开头,按照\分割的字符串。 你需要将这个字符串&#xff0…...

在卷积神经网络(CNN)中为什么可以使用多个较小的卷积核替代一个较大的卷积核,以达到相同的感受野

在卷积神经网络(CNN)中为什么可以使用多个较小的卷积核替代一个较大的卷积核,以达到相同的感受野 flyfish 在卷积神经网络(CNN)中,可以使用多个较小的卷积核替代一个较大的卷积核,以达到相同的…...

【学习笔记】Mybatis-Plus(四):MP中内置的插件

内置插件 目前MP已经存在的内部插件包括如下: 插件类名作用PaginationInnerInterceptor分页插件。可以代替以前的PageHelperOptimisticLockerInnerInterceptor乐观锁插件。用于幂等性操作,采用版本更新记录DynamicTableNameInnerInterceptor动态表名Te…...

GlusterFS分布式存储系统

GlusterFS分布式存储系统 一,分布式文件系统理论基础 1.1 分布式文件系统出现 计算机通过文件系统管理,存储数据,而现在数据信息爆炸的时代中人们可以获取的数据成指数倍的增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储…...

微信公众平台测试账号本地微信功能测试说明

使用场景 在本地测试微信登录功能时,因为微信需要可以互联网访问的域名接口,所以本地使用花生壳做内网穿透,将前端服务的端口和后端服务端口进行绑定,获得花生壳提供的两个外网域名。 微信测试账号入口 绑定回调接口 回调接口的…...

Lua语言入门

目录 Lua语言1 搭建Lua开发环境1.1 安装Lua解释器WindowsLinux 1.2 IntelliJ安装Lua插件在线安装本地安装 2 Lua语法2.1 数据类型2.2 变量全局变量局部变量命名规范局部变量作用域 2.3 注释单行注释多行注释 2.4 赋值2.5 操作符数学操作符比较操作符逻辑操作符连接操作符取长度…...

卷积神经网络有哪些应用场景

卷积神经网络(Convolutional Neural Networks,简称CNN)的应用场景非常广泛,尤其是在处理具有网格结构的数据(如图像、视频)时表现出色。以下是一些主要的应用场景: 1. 图像识别与分类 图像分类…...

std::unordered_map和std::map在性能上有何不同

std::unordered_map和std::map在性能上的不同主要体现在以下几个方面: 1. 底层数据结构 std::unordered_map:基于哈希表实现,通过哈希函数计算元素的存储位置。哈希表能够直接通过哈希值快速定位到元素的位置,从而实现高效的查找…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言:多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...