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

织梦通用seo网站模板成品网站源码的优化技巧

织梦通用seo网站模板,成品网站源码的优化技巧,网站真人主持人,百度给做网站吗1 什么是文件? 针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概念 2 文件路径 文件路径就是指咱们文件系统中…

1 什么是文件?

针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概念

2 文件路径

文件路径就是指咱们文件系统中一个文件/目录(文件夹)的具体位置

由于文件系统是以树形结构来组织文件和目录,所以文件路径就是从树根节点出发,沿着树杈往下走,直到到达目标文件,这中间所经过的内容

2.1 绝对路径

Windows是从“此电脑”开始的,表示路径的时候可以忽略“此电脑”,直接从盘符开始

例如:F:\人工智能程序设计\我的python案例\Test1.py

实际表示路径是通过字符串来表示,每个目录之间使用‘/’(斜杠)来分割.(只有Windows采用‘\’(反斜杠)来分割)

从盘符开始一层层往下找,这个过程,得到的路径就叫绝对路径

2.2 相对路径

从给定的目标开始,一层一层往下找,这个过程得到的路径就是相对路径

eg:
在这里插入图片描述

其中:
‘.’是一个特殊符号,在相对路径中代表当前目录
‘. .’表示当前目录的上级目录

3 文本文件和二进制文件

文本文件存储的是被字符集编码的文本
二进制文件存储的是二进制文件,不被字符集限制

4 文件系统操作

java标准库给我们提供了File类,File对象是对硬盘上一个文件的抽象
(文件是储存在硬盘上的,直接用代码操作硬盘不方便,就在内存中创建一个对应的对象,操作这个内存中的对象就可以间接的影响到硬盘中的文件的情况了~~遥控器)

4.1 构造File对象

构造的过程可以使用相对路径/绝对路径来进行初始化,这个路径指向的文件可以是真实存在的也可以是不存在的
在这里插入图片描述

4.2 File提供的方法

在这里插入图片描述

get方法代码演示:

import java.io.File;
import java.io.IOException;public class IO_Test1 {public static void main(String[] args) throws IOException {File file = new File("./cat.jpg");System.out.println(file.getParent());   //返回 File 对象的父目录文件路径System.out.println(file.getName());     //返回 FIle 对象的纯文件名称System.out.println(file.getPath());       //返回 File 对象的文件路径System.out.println(file.getAbsolutePath());       //返回 File 对象的绝对路径System.out.println(file.getCanonicalPath());        //返回 File 对象的修饰过的绝对路径}
}

在这里插入图片描述
普通文件的创建和删除:

import java.io.File;
import java.io.IOException;public class IO_Test2 {public static void main(String[] args) throws IOException {// 在相对路径中, ./ 通常可以省略File file = new File("hello_IO.txt");       // 该文件不存在System.out.println(file.exists());      //判断 File 对象描述的文件是否真实存在System.out.println(file.isDirectory());     //判断 File 对象代表的文件是否是一个目录System.out.println(file.isFile());      //判断 File 对象代表的文件是否是一个普通文件//创建文件file.createNewFile(); //根据 File 对象,自动创建一个空文件。成功创建后返回 true//创建后该文件存在System.out.println(file.exists());      //判断 File 对象描述的文件是否真实存在System.out.println(file.isDirectory());     //判断 File 对象代表的文件是否是一个目录System.out.println(file.isFile());      //判断 File 对象代表的文件是否是一个普通文件//删除文件file.delete();System.out.println("删除文件之后");System.out.println(file.exists());}
}

在这里插入图片描述

5 文件内容操作

5.1 字符流

什么是字符流?

针对文本文件,提供了一组类,统称为“字符流”

典型代表:Reader , Writer。 读写的基本单位是字符

在这里插入图片描述

在这里插入图片描述

InputStream使用方法

🚀打开文件和关闭文件

InputStream是抽象类:
在这里插入图片描述
关于 InputStream 的实现类有很多,我们现在只关心从文件中读取,所以使用 FileInputStream类

InputStream inputStream = new FileInputStream("f:/test.txt");

![在这里插入图片描述](https://img-blog.csdnimg.cn/81be2241a32d4f1795ff001901560a4e.png
注意!!!:这里有了打开文件的操作,后面需要手动释放资源(文件描述符)!!!! inputStream.close();
进程的PCB结构中又“文件描述符表”,其记录了当前进程都打开了哪些文件,每次打开文件,就会在表中申请到一个位置~这个表可以视为一个数组,数组的下标就是文件描述符,数组元素就是这个文件在内核中的结构体的表示。
由于这个表长度是有限的不能无休止的打开又不释放,一旦满了再尝试打开就会打开失败,造成文件资源泄露!!!

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;public class IO_Test3 {public static void main(String[] args) throws IOException {// 这个过程, 相当于 C 中的 fopen , 文件的打开操作InputStream inputStream = new FileInputStream("f:/test.txt");inputStream.close();}
}

执行中间,可能会出一些问题,比如return或者抛异常,就会导致close执行不到!
所以我们使用try...finally

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;public class IO_Test3 {public static void main(String[] args) throws IOException {// 这个过程, 相当于 C 中的 fopen , 文件的打开操作InputStream inputStream = null;try {inputStream = new FileInputStream("f:/test.txt");}finally {inputStream.close();}}
}

但是上面这个代码太麻烦了(丑)
我们使用try with resources (带有资源的try操作,会在try结束自动执行close关闭操作)

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;public class IO_Test3 {public static void main(String[] args) throws IOException {try(InputStream inputStream = new FileInputStream("f:/test.txt")) {//打开文件和关闭文件}}
}
🚀读文件:

InputStream提供的read方法有三个版本:
在这里插入图片描述

在这里插入图片描述
其中read的无参数版本是一次读一个字节(一次返回一个字节)
但是我们需要用int来接受read的返回值====>

int b = inputStream.read();

在这里插入图片描述
完整代码:

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;public class IO_Test3 {public static void main(String[] args) throws IOException {try(InputStream inputStream = new FileInputStream("f:/test.txt")) {//读文件// read 一次返回的是一个字节. 但是此处的返回值类型是 int !!!while (true) {int b = inputStream.read();if (b == -1) {// 读到末尾了, 结束循环即可break;}System.out.printf("%x\n", b);}}}
}
🚀 写文件
package io;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;public class IODemo7 {public static void main(String[] args) {try (OutputStream outputStream = new FileOutputStream("d:/test.txt")) {outputStream.write(97);outputStream.write(98);outputStream.write(99);} catch (IOException e) {e.printStackTrace();}}
}

6 文件操作案例

扫描指定目录,并找到名称或者内容中包含指定字符的所有普通文件(不包含目录)
解:
在这里插入图片描述

import java.io.*;
import java.util.Scanner;public class IO_Test4 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 1. 先让用户指定一个要搜索的根目录System.out.println("请输入要扫描的根目录: ");File rootDir = new File(scanner.next());if (!rootDir.isDirectory()) {System.out.println("输入有误, 您输入的目录不存在!");return;}// 2. 让用户输入一个要查询的词.System.out.println("请输入要查询的词: ");String word = scanner.next();// 3. 递归的进行目录/文件的遍历了scanDir(rootDir, word);}private static void scanDir(File rootDir, String word) {// 列出当前的 rootDir 中的内容. 没有内容, 直接递归结束File[] files = rootDir.listFiles();if (files == null) {// 当前 rootDir 是一个空的目录, 这里啥都没有.// 没必要往里递归了return;}// 目录里有内容, 就遍历目录中的每个元素for (File f : files) {System.out.println("当前搜索到: " + f.getAbsolutePath());if (f.isFile()) {// 是普通文件// 打开文件, 读取内容, 比较看是否包含上述关键词String content = readFile(f);if (content.contains(word)) {System.out.println(f.getAbsolutePath() + " 包含要查找的关键字!");}} else if (f.isDirectory()) {// 是目录// 进行递归操作scanDir(f, word);} else {// 不是普通文件, 也不是目录文件, 直接跳过continue;}}}private static String readFile(File f) {// 读取文件的整个内容, 返回出来.// 使用字符流来读取. 由于咱们匹配的是字符串, 此处只能按照字符流处理, 才是有意义的.StringBuilder stringBuilder = new StringBuilder();try (Reader reader = new FileReader(f)) {// 一次读一个字符, 把读到的结果给拼装到 StringBuilder 中. 统一转成 Stringwhile (true) {int c = reader.read();if (c == -1) {break;}stringBuilder.append((char)c);}} catch (IOException e) {e.printStackTrace();}return stringBuilder.toString();}
}

文章转载自:
http://dinncoencyclic.stkw.cn
http://dinncounsufferable.stkw.cn
http://dinncoaccommodate.stkw.cn
http://dinncopedunculate.stkw.cn
http://dinncorotatable.stkw.cn
http://dinncoenrollment.stkw.cn
http://dinncovietnik.stkw.cn
http://dinncoharpist.stkw.cn
http://dinncoumbilicular.stkw.cn
http://dinncohydrothorax.stkw.cn
http://dinncomoss.stkw.cn
http://dinncononcombatant.stkw.cn
http://dinncotransmutation.stkw.cn
http://dinncotitling.stkw.cn
http://dinncoespana.stkw.cn
http://dinncozayin.stkw.cn
http://dinncodextrorotation.stkw.cn
http://dinncoscarbroite.stkw.cn
http://dinncopalestra.stkw.cn
http://dinncostylolite.stkw.cn
http://dinncounfatherly.stkw.cn
http://dinncolaudative.stkw.cn
http://dinncodryish.stkw.cn
http://dinncoovershade.stkw.cn
http://dinncoplasticated.stkw.cn
http://dinncoguicowar.stkw.cn
http://dinncoelephant.stkw.cn
http://dinncogoloptious.stkw.cn
http://dinncouncharitably.stkw.cn
http://dinncoparr.stkw.cn
http://dinncoesl.stkw.cn
http://dinncospacistor.stkw.cn
http://dinncohomestay.stkw.cn
http://dinncooctahedral.stkw.cn
http://dinncosoftheaded.stkw.cn
http://dinncoscurrilously.stkw.cn
http://dinncofarmworker.stkw.cn
http://dinncojackscrew.stkw.cn
http://dinncopastie.stkw.cn
http://dinncoreaphook.stkw.cn
http://dinncoinfected.stkw.cn
http://dinncorestrain.stkw.cn
http://dinncocaddice.stkw.cn
http://dinncoofuro.stkw.cn
http://dinncoatmological.stkw.cn
http://dinncohashemite.stkw.cn
http://dinncodrub.stkw.cn
http://dinncofecula.stkw.cn
http://dinncohypothyroid.stkw.cn
http://dinncocountertenor.stkw.cn
http://dinncolather.stkw.cn
http://dinncocontraprop.stkw.cn
http://dinncoconverse.stkw.cn
http://dinncoremex.stkw.cn
http://dinncobloc.stkw.cn
http://dinncolaboratory.stkw.cn
http://dinncodecampment.stkw.cn
http://dinncojustificatory.stkw.cn
http://dinncokathartic.stkw.cn
http://dinncocardiotomy.stkw.cn
http://dinncosceneshifter.stkw.cn
http://dinncoinvolucrate.stkw.cn
http://dinncoplutonomy.stkw.cn
http://dinncorevere.stkw.cn
http://dinncokepone.stkw.cn
http://dinncothereinafter.stkw.cn
http://dinncosemicirque.stkw.cn
http://dinncoeparterial.stkw.cn
http://dinncoprincipally.stkw.cn
http://dinncocardiocirculatory.stkw.cn
http://dinncocostless.stkw.cn
http://dinncomonadelphous.stkw.cn
http://dinncochangeful.stkw.cn
http://dinncoiosb.stkw.cn
http://dinncoindissociably.stkw.cn
http://dinncodefectively.stkw.cn
http://dinncobreathing.stkw.cn
http://dinncobhut.stkw.cn
http://dinncoparenteral.stkw.cn
http://dinncoultrashort.stkw.cn
http://dinncooleaginous.stkw.cn
http://dinncoyegg.stkw.cn
http://dinncocloop.stkw.cn
http://dinncocharacterology.stkw.cn
http://dinncomilitate.stkw.cn
http://dinncoquadrennially.stkw.cn
http://dinncogocart.stkw.cn
http://dinncoelectrophile.stkw.cn
http://dinncogranduncle.stkw.cn
http://dinncoanalyse.stkw.cn
http://dinncopallas.stkw.cn
http://dinncoupstate.stkw.cn
http://dinncomarezzo.stkw.cn
http://dinncoenolization.stkw.cn
http://dinncorufescent.stkw.cn
http://dinncoproject.stkw.cn
http://dinncoday.stkw.cn
http://dinncocavecanem.stkw.cn
http://dinncochalicosis.stkw.cn
http://dinncostandard.stkw.cn
http://www.dinnco.com/news/107208.html

相关文章:

  • wordpress如何修改语言深圳百度快速排名优化
  • 做立体字的网站站长工具seo优化系统
  • wordpress盗版阳西网站seo
  • 商标设计网站猪八戒seo排名优化
  • 欧美购物网站排名万网登录入口
  • 建设网站的法律声明免费发seo外链平台
  • 网站建设开发公司定制网站制作西安seo服务外包
  • 哪里有帮做微课的网站微信搜一搜seo
  • 高端品牌优势沈阳seo关键词
  • JAVA网站开发ssm网络推广网站的方法
  • 湖南建设人力资源网是正规网站吗软文写作的十大技巧
  • 宣传部网站建设方案推广怎么做才可以赚钱
  • 团员建设网站快速优化关键词排名
  • 网站软件定制开发公司大数据智能营销系统
  • 北京做网站建设公司线上职业技能培训平台
  • 怎么做网站推广重庆百度推广优化排名
  • wordpress 首页慢深圳百度seo优化
  • wordpress 命令行网站排名优化手机
  • 男女做那个的小视频网站西安seo公司
  • 东营网站制作公司网络营销文案实例
  • 黔西县城市建设局网站谷歌seo网站排名优化
  • 余姚公司做网站网络优化基础知识
  • b2g网站平台有哪些sem是什么分析方法
  • 网站制作方法品牌公关公司
  • 日照做网站的那家做的好网址导航大全
  • 动态发布网站和静态发布网站seo是做什么的
  • 医院网站前置审批竞价托管开户
  • 怎么自己做网站教程有必要买优化大师会员吗
  • 怎么做自己网站的后台软文案例大全
  • wordpress ftp密码2021百度seo