阿凡达网站建设小白学做搭建网站
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:00
当前位置: 首页 > news >正文
阿凡达网站建设,小白学做搭建网站,建易网官网,网站维护和制作怎么做会计分录1.文件
1.认识文件
平时说的文件一般都是指存储再硬盘上的普通文件#xff0c;形如txt#xff0c;jpg#xff0c;MP4#xff0c;rar等这些文件都可以认为是普通文件#xff0c;它们都是再硬盘上存储的。
在计算机中#xff0c;文件可能是一个广义的概念#xff0c;就…1.文件
1.认识文件
平时说的文件一般都是指存储再硬盘上的普通文件形如txtjpgMP4rar等这些文件都可以认为是普通文件它们都是再硬盘上存储的。
在计算机中文件可能是一个广义的概念就不只是包含普通文件还可以包含目录(把目录称为目录文件)文件可以是文本文档、图片、程序等等。文件通常具有点三个字母的文件扩展名用于指示文件类型例如图片文件常常以JPEG格式保存并且文件扩展名为.jpg。
普通文件是保存在硬盘上的。
机械硬盘的基本构造
盘片存储数据的介质磁头
针对硬盘这种持久化存储的I/O设备当我们想要进行数据保存时 往往不是保存成一个整体而是独立成一个个的单位进行保存这个独立的单位就被抽象成文件的概念就类似办公桌上的一份份真实的文件一般。 文件除了有数据内容之外还有一部分信息例如文件名、文件类型、文件大小等并不作为文件的数据而存在我们把这部分信息可以视为文件的元信息。 文件的分类(站在程序员的角度)
主要把文件分为两类
文本文件里面存储的是字符文本文件本质上也是存字节的但是文本文件中相邻的字节在一起正好构成一个个字符。二进制文件里面存储的是字节 2.树型结构组织和目录
计算机里保存管理文件是通过操作系统中“文件系统”这样的模块来负责的。
随着文件越来越多对文件的系统管理也被提上了日程如何进行文件的组织呢一种合乎自然的想法出现了就是按照层级结构进行组织 —— 也就是我们数据结构中学习过的树形结构。这样一种专门用来存放管理信息的特殊文件诞生了也就是我们平时所谓文件夹(folder)或者目录(directory)的概念。 3. 文件路径
如何在文件系统中如何定位我们的一个唯一的文件就成为当前要解决的问题但这难不倒计算机科学家因为从树型结构的角度来看树中的每个结点都可以被一条从根开始一直到达的结点的路径所描述而这种描述方式就被称为文件的绝对路径absolute path。 除了可以从根开始进行路径的描述我们可以从任意结点出发进行路径的描述而这种描述方式就被称为相对路径relative path相对于当前所在结点的一条路径。 即使是定位到同一个文件如果基准目录不同此时相对路径也不同。
2.Java中的操作文件
1.文件系统相关的操作
文件系统相关的操作指的是通过”文件资源管理器“能够完成的一些功能。
功能
列出目录中有哪些文件创建文件创建目录删除文件重命名文件…
在Java中提供了一个File类通过这个类来完成上述操作 首先File类就描述一个文件/目录
File的构造方法能够传入一个路径来指定一个文件这个路径可以是绝对路径也可以是相对路径
属性:
构造方法:
方法:
文件操作也是一种输入输出File这个东西也就在IO中 这样就可以定位到具体的文件是以绝对路径的方式。
如果是通过命令行的方式(java.Demo)此时执行命令所在的目录就是基准路径如果是通过IDEA的方式来运行程序此时基准路径就是当前Java项目所在的路径把一个java代码打残war包放到tomcat上运行 这种情况下基准路径就是tomcat的bin目录 一旦路径指定错了很容易出现找不到的情况~
import java.io.File;import java.io.IOException;SuppressWarnings({all})public class Demo {public static void main(String[] args) throws IOException {File f new File(E:/text.txt);// 获取到文件的父目录System.out.println(f.getParent());// 获取到文件名System.out.println(f.getName());// 获取到文件路径System.out.println(f.getPath());// 获取到绝对路径System.out.println(f.getAbsolutePath());// 获取到绝对路径System.out.println(f.getCanonicalPath());System.out.println();File f2 new File(./test.txt);// 获取到文件的父目录System.out.println(f2.getParent());// 获取到文件名System.out.println(f2.getName());// 获取到文件路径System.out.println(f2.getPath());// 获取到绝对路径System.out.println(f2.getAbsolutePath());// 获取到绝对路径System.out.println(f2.getCanonicalPath());}
}2.文件内容的相关操作
打开文件读文件写文件关闭文件
针对文件内容的读写java标准库提供了一组类~ 首先按照文件的内容分为两个系列
字节流对象针对二进制文件是以字节为单位进行读写的读InputStream写OutputStream。 字符流对象针对文本文件是以字符为单位进行读写的读Reader写Writer。
InputStream read提供了三个版本的重载
无参版本一次读一个字节一个参数版本一次读若干个字节把读的结果放到参数指定的数组中返回值就是读到的字节数三个参数版本一次读若干个字节把读的结果放到参数指定的数组中返回值就是读到的字节数不是从数组的起始位置放置而是从中间位置放置(off这个下标的位置)len表示最多能放多少个元素(字节) IO操作失败的可能性是非常大的另外硬盘也容易出现“坏道”
public class Demo2 {public static void main(String[] args) {// 构造方法中需要指定打开文件的路径try {// 1. 创建对象同时也是在打开文件InputStream inputStream new FileInputStream(E://test.txt);// 2. 尝试一个一个字节的读把整个文件读完while (true) {int b inputStream.read();if (b -1)break;System.out.println(b);}// 3. 读完之后要记得关闭文件释放资源inputStream.close();} catch (IOException e) {throw new RuntimeException(e);}}
}更好的做法是把close放到finally里面 改进之后的代码
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;SuppressWarnings({all})
public class Demo3 {public static void main(String[] args) {// 构造方法中需要指定打开文件的路径InputStream inputStream null;try {// 1. 创建对象同时也是在打开文件inputStream new FileInputStream(E://test.txt);// 2. 尝试一个一个字节的读把整个文件读完while (true) {int b inputStream.read();if (b -1)break;System.out.println(b);}} catch (IOException e) {throw new RuntimeException(e);} finally {// 3. 读完之后要记得关闭文件释放资源try {inputStream.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}try (InputStream inputStream new FileInputStream(E:/test.txt)){// 一次读取若干个字符while (true) {byte[] buffer new byte[1024];int len inputStream.read(buffer);if (len -1) {// 如果返回-1 就读完了break;}for (int i 0; i len; i) {System.out.println(buffer[i]);}}
} catch (IOException e) {throw new RuntimeException(e);
}OutputStream
public static void main(String[] args) {try (OutputStream outputStream new FileOutputStream(E:/test.txt)) {
// outputStream.write(97);
// outputStream.write(98);
// outputStream.write(99);byte[] buffer new byte[]{97, 98, 99};outputStream.write(buffer);} catch (IOException e) {throw new RuntimeException(e);}} import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;SuppressWarnings({all})
public class Demo4 {public static void main(String[] args) {try (Reader reader new FileReader(E/test.txt)){// 按照字符来读while (true) {char[] buffer new char[1024];int len reader.read(buffer);if (len -1) {break;}for (int i 0; i len; i) {System.out.println(buffer[i]);}String s new String(buffer, 0, len);System.out.println(s);}} catch (IOException e) {throw new RuntimeException(e);}}
}import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;// 按照字符来写
SuppressWarnings({all})
public class Demo5 {public static void main(String[] args) {try (Writer writer new FileWriter(E:?test.txt)){writer.write(yjx);} catch (IOException e) {throw new RuntimeException(e);}}
}3.文件操作案例
扫描指定目录并找到名称或者内容中包含指定字符的所有普通文件不包含目录
import java.io.*;
import java.util.Scanner;public class IODemo1 {//扫描指定目录,并找到名称或者内容包含指定字符的所有普通文件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) {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();}
}
- 上一篇: 阿迪网站建设规划书产品单页设计图片
- 下一篇: 阿克苏网站建设咨询微信小程序开发和网站开发的区别
相关文章
-
阿迪网站建设规划书产品单页设计图片
阿迪网站建设规划书产品单页设计图片
- 技术栈
- 2026年03月21日
-
阿坝州做网站公司wordpress替换dede
阿坝州做网站公司wordpress替换dede
- 技术栈
- 2026年03月21日
-
zencart 网站老是跳转到原地址网站建设业务员的工作总结及计划
zencart 网站老是跳转到原地址网站建设业务员的工作总结及计划
- 技术栈
- 2026年03月21日
-
阿克苏网站建设咨询微信小程序开发和网站开发的区别
阿克苏网站建设咨询微信小程序开发和网站开发的区别
- 技术栈
- 2026年03月21日
-
阿克苏网站开发百度新闻最新消息
阿克苏网站开发百度新闻最新消息
- 技术栈
- 2026年03月21日
-
阿勒泰建设招聘网站江门制作网站公司
阿勒泰建设招聘网站江门制作网站公司
- 技术栈
- 2026年03月21日






