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

中国优秀企业网站欣赏/怎么自己做一个网址

中国优秀企业网站欣赏,怎么自己做一个网址,成交功能网站,招聘网站怎么做效果好1. 认识文件 1)文件概念 “文件”是一个广义的概念,可以代表很多东西 操作系统里,会把很多的硬件设备和软件资源抽象成“文件”,统一管理 但是大部分情况下的文件,都是指硬盘的文件(文件相当于是对“硬…

1. 认识文件

1)文件概念

“文件”是一个广义的概念,可以代表很多东西

操作系统里,会把很多的硬件设备和软件资源抽象成“文件”,统一管理

但是大部分情况下的文件,都是指硬盘的文件(文件相当于是对“硬盘”数据的一种抽象)

机械硬盘(HDD)适合顺序读取(磁头移动需要时间)

固态硬盘(SSD)内部是集成程度很高的芯片

2)目录

 一台计算机上有很多文件,这些文件是通过“文件系统”(操作系统提供的模块)来进行组织的

操作系统,使用“目录”(文件夹)这样的结构来组织文件

目录内部可能还包含其他的文件/目录

3)文件路径

可以通过文件路径,来确定当前文件具体所在的位置

1. 绝对路径:以 C: D: 盘开头

2. 相对路径:先指定一个目录作为基准目录,从基准目录出发,看沿着怎样的路径能找到指定的文件。一般以 . 或者 .. 开头( . 的情况可省略)

 .  当前目录

 ..  当前目录的上一级目录

如果是命令行进行操作,基准目录,就是当前所处的目录

如果是图形化界面的程序,基准目录就不好判断了

对于IDEA来说,基准目录,就是项目目录

4)文件类型

从编程的角度看:

1. 文本——文件中保存的数据,都是字符串,保存的内容,都是合法字符

2. 二进制——文件中保存的数据,仅仅是二进制数据,包要求保存的内容是合法字符

合法字符涉及字符集/字符编码

如 utf8:

有一个大的表格(码表),列出什么字符,对应到什么编码

如果文件是 utf8 编写的,此时文件的每个数据都是合法的 utf8 编码的字符 ——文本文件

如果存在一些不是 utf8 合法字符的情况——二进制

判断文件的类型——>

直接使用记事本打开这个文件,如果是乱码,文件就是二进制,否则就是文本

记事本就是尝试按照字符的方式来展示内容,这个过程会自动查码表

写代码时,文本文件和二进制文件的编码方式不同 

2. Java 中操作文件

1. 文件系统的操作:                                        File

创建文件,删除文件,判断文件是否存在,判断文件类型,重命名

2. 文件内容的操作:                                        流对象

读文件/写文件

1)File 概述(文件系统操作)

属性

修饰符积累性属性说明
static StringpathSeparator

依赖于系统的路径分隔符,

String 类型的表示

static charpathSeparator

依赖于系统的路径分隔符,

char 类型的表示

pathSeparator 是一个路径中用来分割目录的符号

Windows =>   \ 和 /

Linux =>         /

一般还是使用 / ,使用 \ 在代码中要搭配转义字符使用

构造方法

签名说明
File(File parent,String child)

根据父目录+孩子文件,

创建一个新的对象

File(String pathname)

根据文件路径创建一个新的实例,

路径可以是绝对路径或相对路径

File(String parent,Strinf child)

根据父目录+孩子文件路径创建实例,

父目录用路径表达式

1)一个File对象,就表示一个硬盘上的文件

在构造对象的时候,就需要把这个文件的路径指定进来(绝对路径/相对路径都可以)

2)文件名 = 前缀 + 扩展名

使用路径构造对象,一定要把前缀和扩展名都带上

方法

修饰符及返回值类型方法签名说明
StringgetParent()

返回File对象的父目录

文件路径

StringgetName()返回File对象的纯文件名称
StringgetPath()返回File对象的文件路径
StringgetAbsolutePath()返回File对象绝对路径的
StringgetCanonicalPath()

返回File对象的修饰过的

绝对路径

booleanexist()

返回File对象描述的文件是否

真实存在

booleanisDirectory()

返回File对象代表的文件是否是

一个目录

booleanisFile()

返回File对象代表的文件是否是

一个普通文件

booleancreateNewFile()

根据File对象,自动创建一个

空文件,创建成功后返回true

booleandelete()

根据File对象,删除该文件,

成功删除后返回true

voiddeleteOnExit()

根据 File 对象,标注文件将被删除,删除动作会到 JVM 运行结束时才会进行

String[]list()

返回File对象代表的目录下的

所有文件名

File[]listFile()

返回File对象代表的目录下的所有文件,以File对象表示

booleanmkdir()创建File对象代表的目录
booleanmkdirs()创建File对象代表的目录,如果必要,会创建中间目录
booleanrenameTo(File dest)进行文件(剪切,粘贴操作)
booleancanRead()判断用户是否对文件有可读的权限
booleancanWrite()判断用户是否对文件有可写的权限

Windows上的盘符不分大小写

getCanonicalPath()  针对绝对路径进行简化后得到的路径

对IDEA来说,基准目录就是项目所在的目录

绝对路径就是把当前的相对路径拼接到基准目录上

System.out.println(files);

打不出数组内容,是数组的哈希值

在JVM上层,Java代码中,没有任何办法获取到“内存地址”

要想拿到内存地址,只能靠native方法进入到JVM内部,通过C++代码获取到

System.out.println(Arrays.toString(files));

会打印出系统自带的特殊目录,不让用户感知到,防止被随意修改

2)文件内容的读写 —— 数据流

流对象(文件内容操作)

在标准库中,提供的读写文件的流对象(stream)有很多类,可以归结到两个大的类别中:

1. 字节流(对应二进制文件)

每次读/写的最小单位,是“字节”(8bit)

InputStream         OutputStream

2. 字符流 (对应文本文件)

每次读/写的最小单位,是“字符”(一个字符可能对应多个字节)

本质上是对字节流的又一层封装,把文件中几个相邻的字节,转换成一个字符(自动查字符集表)

Reader          Writer

GBK,一个中文字符集 => 两个字节

utf8,一个中文字符集 => 三个字节

输入/输出是站在CPU的角度上:       输出——>读         输入——>写

1. Reader 类

Reader 是抽象类,不能new实例,只能new子类                 标准库已经提供了现成的类

创建Reader对象的过程,就是”打开文件“的过程                  文件不存在就就会打开失败

1. 无参数 read:一次读取一个字符

2. 一个参数 read:一次读取若干个字符,会把参数指定的 cbuf 数组给填充满

4. 三个参数 read :一次读取若干个字符,会把参数中的 cbuf 数组,从off位置开始,到len的范围尽量填满

1)把这个 cbuf 空数组(不是null,没有实际意义的数组)尽量填满

2)使用 close 方法,是为了释放文件描述符(PCB)——>

顺序表(数组)

进程每次打开文件,都需要在这个表里分配一个元素,这个数组的长度是存在上限的

当数组占满后再尝试打开文件,会触发文件资源泄露(类似内存泄漏)

3)read 返回值是 int 表示读取的字符数,若文件读完了,返回 -1

reader.close();

该方法可能会执行不到,如果程序出现逻辑错误,会报异常终止程序,调用不到 close

可以使用

try{}finally{reader.close();
}                                      //但过于繁琐,不够优美

try{

}                                                                    // try with resources

 () 中定义的变量,会在 try 代码结束的时候(正常结束,还是抛出异常),自动调用其中的 close 方法

要求写到 () 里的对象必须实现 Closeable 借口 ——流对象都可以这么写

 

在Java标准库内部,对于字符编码做了很多的处理:

1)只使用char,此时使用的字符集固定是 unicode

若使用String,此时会自动把每个字符的 Unicode 转换成 utf8

2)char[] c 包含的每个字符都是 unicode 编码的

String s = new String(c); 一旦使用这个字符数组构成String,就会在内部把每个字符都转换成 utf8 ,可配置

s.charAt(i) 也会把对应的 utf8 的数据,转换成 unicode

3)把多个 unicode 联系放到一起,难以区分从哪到哪是一个完整的字符

utf8 可以做到区分

可以认为 utf8 是针对连续多个字符进行传输时的一种改进方案

2. Write 类

1. 一次写一个字符

2. 一次写一个字符串

3. 一次写多个字符(字符数组)

4,5. offset 是从数组/字符串中的第几个字符开始写 

Write 写入文件,默认情况下会把原文件的内容清空掉

若不想清空,需要在构造方法中添加一个参数

此时回见内容写到原有文件的末尾

3. OutputStream类

和 Write 类似, OutputStream 打开一个文件,默认会清空文件的原有内容

写入的数据,会成为文件中的新数据

若不想清空,可以使用追加写的方式(在构造方法中,第二个参数传入 true )

此处已经写入了字符串,但在文件中却未写入

缓冲区

PrintWriter 这样的类,在进行写入的时候,不一定是直接写硬盘,而是先把数据写入到一个内存构成的“缓冲区”中(buffer) ——引入缓冲区是为了提高效率,减少读硬盘的次数

当写入缓冲区后,如果还没来及将缓冲区的数据写入硬盘,进程就结束了,此时数据就丢了

有时候需要手动使用 flush 方法将数据写入硬盘 ——刷新缓冲区

 

4. InputStream类

以上是将文件中的数据全部读完的两种方式,前者的IO次数更少,性能更好

Scanner 进行字符读取
Scanner(InputStream is, String charset)          使用 charset 字符集进行 is 的扫描读取

文件练习

扫描指定目录,找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问用户是否要删除该文件

1)list 列出目录内容

2)判断文件类型

3)删除文件

找到目录中的所有文件,以及子目录中的所有文件,只要遇到子目录就往里找

可以使用“递归”的方式,把所有的子目录都扫描一遍

 

 

相关文章:

文件IO——01

1. 认识文件 1)文件概念 “文件”是一个广义的概念,可以代表很多东西 操作系统里,会把很多的硬件设备和软件资源抽象成“文件”,统一管理 但是大部分情况下的文件,都是指硬盘的文件(文件相当于是对“硬…...

【opencv入门教程】5. Mat 类用法

文章选自: 一、BackGround Mat对象是一种图像数据结构,它是一个容器,存储任何通道任何数的图片数据以及对应的矩阵,使用完成后,内存自动释放。二、Code void Samples::MatFunc() {1. 图像处理// 方法1:…...

SSM虾米音乐项目2--分页查询

1.分页查询的底层逻辑 首先根据用户输入的流派,进行模糊查询根据查询的数据进行分页需要前端用户提供pageNo(当前页数)和pageSize(每页的数据量)并且要从后端计算count(总数据量)和totalPage(总页数),以及startNum(每页开始的记录)从而将对应的页面数据…...

nodejs 获取本地局域网 ip 扫描本地端口

因为傻逼老板的垃圾需求,不得不成长 示例代码: 获取本地局域网 ip 地址: 需要注意的是:如果存在虚拟机网络,则返回的是虚拟机网络的 ipv4 地址 import os from os; export const getLocalIp () > {const in…...

区块链签名种类

1. eth_sign 简介:最早实现的签名方法,用于对任意数据进行签名。签名内容:直接对原始消息的哈希值进行签名。特点: 安全性较低,因为签名的消息没有明确的上下文或结构。很容易被滥用,攻击者可以伪造签名内…...

【062B】基于51单片机无线病房呼叫系统(+时间)【Keil程序+报告+原理图】

☆、设计硬件组成:51单片机最小系统NRF24L01无线模块DS1302时钟芯片LCD1602液晶显示按键设置蜂鸣器LED灯。 1、本设计采用STC89C51/52、AT89C51/52、AT89S51/52作为主控芯片,采用LCD1602液晶显示呼叫信息,系统共有两个板子(一个接…...

突破空间限制!从2D到3D:北大等开源Lift3D,助力精准具身智能操作!

文章链接:https://arxiv.org/pdf/2411.18623 项目链接:https://lift3d-web.github.io/ 亮点直击 提出了Lift3D,通过系统地提升隐式和显式的3D机器人表示,提升2D基础模型,构建一个3D操作策略。 对于隐式3D机器人表示&a…...

【pyspark学习从入门到精通24】机器学习库_7

目录 聚类 在出生数据集中寻找簇 主题挖掘 回归 聚类 聚类是机器学习中另一个重要的部分:在现实世界中,我们并不总是有目标特征的奢侈条件,因此我们需要回归到无监督学习的范式,在那里我们尝试在数据中发现模式。 在出生数据…...

Echart折线图属性设置 vue2

Echart折线图 官方配置项手册 Documentation - Apache ECharts 下面代码包含:设置标题、线条样式、图例圆圈的样式、显示名称格式、图片保存、增加Y轴目标值 updateChart(data) {const sortedData data.slice().sort((a, b) > new Date(a.deviceTime) - ne…...

LabVIEW-简单串口助手

LabVIEW-简单串口助手 串口函数VISA配置串口VISA写入函数VISA读取函数VISA资源名称按名称解除捆绑 函数存放位置思维导图主体界面为以下 串口函数 VISA配置串口 VISA写入函数 VISA读取函数 VISA资源名称 按名称解除捆绑 函数存放位置 思维导图 主体界面为以下 从创建好的“枚举…...

Linux下,用ufw实现端口关闭、流量控制(二)

本文是 网安小白的端口关闭实践 的续篇。 海量报文,一手掌握,你值得拥有,让我们开始吧~ ufw 与 iptables的关系 理论介绍: ufw(Uncomplicated Firewall)是一个基于iptables的前端工具&#xf…...

C#开发-集合使用和技巧(九)Join的用法

在C#中&#xff0c;IEnumerable 的 Join 方法用于根据键将两个序列中的元素进行关联。Join 方法通常用于执行类似于 SQL 中的内连接操作。以下是 Join 方法的基本用法&#xff1a; 基本语法 public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult…...

Dockerfile容器镜像构建技术

文章目录 1、容器回顾1_容器与容器镜像之间的关系2_容器镜像分类3_容器镜像获取的方法 2、其他容器镜像获取方法演示1_在DockerHub直接下载2_把操作系统的文件系统打包为容器镜像3_把正在运行的容器打包为容器镜像 3、Dockerfile介绍4、Dockerfile指令1_FROM2_RUN3_CMD4_EXPOSE…...

Github 2024-12-01 开源项目月报 Top20

根据Github Trendings的统计,本月(2024-12-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10TypeScript项目9Go项目2HTML项目1Shell项目1Jupyter Notebook项目1屏幕截图转代码应用 创建周期:114 天开发语言:TypeScript, Py…...

Spring Boot 3项目集成Swagger3教程

Spring Boot 3项目集成Swagger3教程 ?? 前言 欢迎来到我的小天地&#xff0c;这里是我记录技术点滴、分享学习心得的地方。?? ?? 技能清单 编程语言&#xff1a;Java、C、C、Python、Go、前端技术&#xff1a;Jquery、Vue.js、React、uni-app、EchartsUI设计: Element-u…...

NISP信息安全一级考试200道;免费题库;大风车题库

下载链接&#xff1a;大风车题库-文件 大风车题库网站&#xff1a;大风车题库 大风车excel&#xff08;试题转excel&#xff09;&#xff1a;大风车excel...

Android ConstraintLayout 约束布局的使用手册

目录 前言 一、ConstraintLayout基本介绍 二、ConstraintLayout使用步骤 1、引入库 2、基本使用&#xff0c;实现按钮居中。相对于父布局的约束。 3、A Button 居中展示&#xff0c;B Button展示在A Button正下方&#xff08;距离A 46dp&#xff09;。相对于兄弟控件的约束…...

在网安中什么是白帽子

在网络安全领域&#xff0c;白帽子是指那些专门从事网络安全研究&#xff0c;帮助企业或个人发现并修复安全漏洞的专家。以下是对白帽子的详细解释&#xff1a; 一、定义与角色 白帽子是网络安全领域的术语&#xff0c;通常指那些具备专业技能和知识的网络安全专家。他们的工作…...

软件专业科目难度分级 你输在了哪里?

感想&#xff1a; 我把我们现在软件专业学的东西分了个难度级别 级别描述视角服务对象例子0 基本软件的使用用户-Photoshop wps ssms等1 软件的原理开发者用户各种编程语言2软件的原理的原理开发者开发者各种函数的深层定义&#xff0c;数据结构等 0级就是咱们平时用的那些软…...

微信小程序实现图片拖拽调换位置效果 -- 开箱即用

在编写类似发布朋友圈功能的功能时&#xff0c;需要实现图片的拖拽排序&#xff0c;删除图片等功能。 博主的小程序首页也采用了该示例代码&#xff0c;可以在威信中搜索&#xff1a; 我的百宝工具箱 或者复制后面的&#x1f517;在手机打开&#xff1a; #小程序://百宝工具箱/…...

关于“浔川AI翻译”使用情况的调研报告

关于“浔川 AI 翻译”使用情况的调研报告 随着全球化进程加速及外语学习需求攀升&#xff0c;AI 翻译工具愈发普及。“浔川 AI 翻译”作为行业产品之一&#xff0c;为了解其市场表现与用户反馈&#xff0c;特开展本次问卷调查&#xff0c;现将关键结果汇报如下。 一、样本概…...

《芯片:科技之核,未来之路》

《芯片&#xff1a;科技之核&#xff0c;未来之路》 一、芯片的定义与重要性二、芯片的应用领域&#xff08;一&#xff09;新能源领域&#xff08;二&#xff09;信息通讯设备领域&#xff08;三&#xff09;4C 产业&#xff08;四&#xff09;智能电网领域&#xff08;五&…...

️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南20241206

&#x1f6e0;️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南 &#x1f4dd; 引言 随着大语言模型&#xff08;LLM&#xff09;和人工智能的飞速发展&#xff0c;越来越多的开发者尝试在本地环境中部署大模型进行实验。然而&#xff0c;由于资源需求高、网络限制多…...

使用Tomcat搭建简易文件服务器

创建服务器 1. 复制一个tomcat服务器&#xff0c;并命名为file-service(好区分即可) 2.在webapp里面新建一个文件夹 uploadfiles ,用于存储上传的文件 3. 修改conf/service.xml,配置文件服务器的端口与上传文件夹的访问 在Host标签之间加入一个Context标签 docBase"uploa…...

《C++赋能:构建智能工业控制系统优化算法新引擎》

在工业 4.0 的浪潮汹涌澎湃之际&#xff0c;传统工业控制系统正面临着前所未有的挑战与机遇。如何借助人工智能的强大力量&#xff0c;实现工业控制系统的深度优化&#xff0c;已成为工业领域乃至整个科技界关注的焦点。而 C语言&#xff0c;以其卓越的性能、高效的执行效率和对…...

node.js中跨域请求有几种实现方法

默认情况下&#xff0c;出于安全考虑&#xff0c;浏览器会实施同源策略&#xff0c;阻止网页向不同源的服务器发送请求或接收来自不同源的响应。 同源策略&#xff1a;协议、域名、端口三者必须保持一致 <!DOCTYPE html> <html lang"en"> <head>&l…...

Node.js新作《循序渐进Node.js企业级开发实践》简介

《循序渐进Node.js企业级开发实践》由清华大学出版社出版&#xff0c;已于近期上市。该书基于Node.js 22.3.0编写&#xff0c;提供26个实战案例43个上机练习&#xff0c;可谓是目前市面上最新的Node.js力作。 本文对《循序渐进Node.js企业级开发实践》一书做个大致的介绍。 封…...

常见排序算法总结 (四) - 快速排序与随机选择

快速排序 算法思想 每一轮在数组相应的范围上随机找一个元素进行划分&#xff0c;将不大于它的所有元素都放到左边&#xff0c;将大于它的元素都放到右边。在左右两个子数组上不断地递归&#xff0c;直到整个数组上有序。 注意&#xff1a;实现时选择的时参考荷兰国旗问题优化…...

Doris的基础架构

Doris的基础架构 Frontend&#xff08;FE&#xff09;&#xff1a;主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。Backend&#xff08;BE&#xff09;&#xff1a;主要负责数据存储、查询计划的执行。 我的Github地址&#xff0c;欢迎大家加入我的开…...

python录制鼠标键盘操作循环播放

依赖 pip install pynput 程序: from pynput import mouse, keyboard import time import threading# 用于存储录制的鼠标和键盘事件 mouse_events [] keyboard_events []# 定义事件处理函数# 处理鼠标事件 def on_move(x, y):mouse_events.append((move, x, y))def on_cl…...