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

广东网站备案时间360建筑网证书

广东网站备案时间,360建筑网证书,宁夏公路建设管理局网站,大基建最新消息找往期文章包括但不限于本期文章中不懂的知识点#xff1a; 个人主页#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏#xff1a;JavaEE 目录 文件介绍 Java标准库中提供操作文件的类 文件系统操作 File类的介绍 File类的使用 文件内容操作 二进制文件的读写操作…找往期文章包括但不限于本期文章中不懂的知识点 个人主页我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏JavaEE 目录 文件介绍  Java标准库中提供操作文件的类 文件系统操作 File类的介绍 File类的使用  文件内容操作 二进制文件的读写操作 文本文件的读写操作 文件介绍  文件分为两种一种是狭义上的文件另一种是广义上的文件。狭义的文件就是指机器上存储数据的地方在电脑上面C盘、D盘这些就可以称为文件而广义的文件是指一切资源。例如网卡、CPU等就可以被抽象成文件。抽象成文件后就可以更加方便地去操作也相当于是一层封装。我们今天要学习的是狭义上的文件。也就是C盘、D盘上的文件。 而狭义的文件也分为两种一种是目录也就是文件夹另外一种就是普通的文件例如.txt。 计算机中的文件有很多我们是使用路径来区分的。 例如D:\编程学习\Java代码练习\java-jdk17-version\AVLTree\src\AVLTree.java 与 D:\编程学习\Java代码练习\java-jdk17-version\AVLTree\src\Test.java 就是两个不同的路径也就代表两者不是同一个文件。 文件其实和我们之前学习的树形结构是一样的只不过前面学习的树形结构主要是二叉树而这里的文件分类采用的是N叉树的方式而已。 在表示文件的路径中主流的操作系统都是使用 / 但是Windows系统既可以用 / 也可以用 \ 。Windows系统默认是采用 \ 。因为 \ 可能在跟字符一起连用时会形成转义字符因此采用的 /。 上面那种路径表示的是绝对路径还有一种相对路径的表示方法。 .\AVLTree.java —— 这就是一个相对路径在相对路径的基础上需要有一个基准路径这个点符就代表的是基准路径而 .. 表示在当前目录的上一级目录。 如果在IDEA中使用 ./AVLTree.java这里的基准路径是项目所在的目录。或者说 src 所在的目录。 站在程序员的角度看待文件时分为两种文本文件与二进行文件我们后续学习的操作也是根据文件的不同从而使用不能的类来操作。当然所有的文件在一定程度上来说都是二进制文件只不过某些文件的二进行数据在编码表中刚好全部可以查到并且正常解析出来不会出现乱码的情况。当我们使用记事本打开文件时如果是二进制文件那么就会出现乱码的情况如果不是乱码那就是文本文件。有可能这个不是二进制文件但是打开之后是我们看不懂的。例如法语或者是德语之类的 常见的文本文件.java 、.c 、.txt等常见的二进制文件图像、音频、可执行的程序(.exe)。 Java标准库中提供操作文件的类 Java标准库中提供操作文件的类有两种一种用来是操作文件外层、另一种是用来操作文件内容。文件外层就是指创建、删除、重命名等。也被称为文件系统操作。 文件系统操作 Java中使用File类来操作文件系统在操作任何一个文件之前都得先创建File对象即使这个文件是不存在的我们也需要创建这个File对象才能进行相关操作。 File类的介绍 构造方法 方法名说明File(File parent, String child)根据父目录孩子文件路径构造一个新的 File 实例File(String pathname)根据文件路径构造一个新的 File 实例路径可以是绝对路径或者相对路径File(String parent, String child)根据父目录孩子文件路径构造一个新的 File 实 例父目录用路径表示 上面的方法都是用来构造目录或者是文件的不会自动去创建。  常用方法 返回值方法名说明StringgetParent()返回 File 对象的父目录文件路径StringgetName()返回 FIle 对象的纯文件名称StringgetPath()返回 File 对象的文件路径StringgetAbsolutePath()返回 File 对象的绝对路径StringgetCanonicalPath()返回 File 对象的修饰过的绝对路径booleanexists()判断 File 对象描述的文件是否真实 存在booleanisDirectory()判断 File 对象代表的文件是否是一 个目录booleanisFile()判断 File 对象代表的文件是否是一 个普通文件booleancreateNewFile()根据File 对象自动创建一个空文 件。成功创建后返回 truebooleandelete()根据 File 对象删除该文件。成功 删除后返回 truevoiddeleteOnExit()根据 File 对象标注文件将被删 除删除动作会到JVM 运行结束时 才会进行也就是进程结束时才删除String[]list()返回 File 对象代表的目录下的所有 文件名File[]listFiles()返回 File 对象代表的目录下的所有 文件以 File 对象表示booleanmkdir()创建 File 对象代表的目录booleanmkdirs()创建 File 对象代表的目录如果必 要会创建中间目录booleanrenameTo(File dest)进行文件改名也可以视为我们平 时的剪切、粘贴操作booleancanRead()判断用户是否对文件有可读权限booleancanWrite()判断用户是否对文件有可写权限 File类的使用  代码演示 1创建、删除文件与目录 public class Test {public static void main(String[] args) throws IOException {// 构造目录File directory new File(./Test);// 创建目录 —— 可以根据返回来决定下面执行什么逻辑System.out.println(directory.mkdir()); // 初次创建为true而后皆为false// 构造文件 —— 根据父目录子路径来构造File file1 new File(directory, ./test1.txt); // 这里的 . 代指父目录// 创建文件System.out.println(file1.createNewFile());// 构造文件 —— 直接根据路径来构造File file2 new File(./Test/test2.txt);// 创建文件System.out.println(file2.createNewFile());// 构造文件 —— 根据父目录子路径来构造父目录为路径File file3 new File(./Test, ./test3.txt); // 子路径这里的 . 代指父目录System.out.println(file3.createNewFile());System.out.println(file1.delete()); // trueSystem.out.println(directory.delete()); // false} }从上述代码的运行结果我们可以得出当目录下存在文件时不能删除目录。 2get 系列方法 public class Test {public static void main(String[] args) throws IOException {// 构造文件File file new File(./test.txt);// 创建文件file.createNewFile();System.out.println(父目录file.getParent());System.out.println(文件名file.getName());System.out.println(文件路径file.getPath());System.out.println(文件绝对路径file.getAbsoluteFile());System.out.println(文件被修饰的绝对路径file.getCanonicalPath());} } 运行结果  1、getParent 与 getPath 都是根据构造文件时的路径来获取的如果 构造方法中的路径是绝对路径那么获取到的结果就是绝对路径。 2、文件的绝对路径 与 文件被修饰过的绝对路径两者的区别是被修饰过的不会出现点符号而是直接被解析成完成的路径了反观没有被修饰过的就会根据构造文件时的路径来作取舍如果构造文件的路径中带有点符号那么最终的结果中也是带有点符号的反之则不会有点符号。  3、文件路径 就是直接拿构造方法中传入的文件路径。 3其余方法 public class Test {public static void main(String[] args) throws IOException {// 构造目录File directory new File(./12306);System.out.println(directory创建前是否存在directory.exists());directory.mkdir(); // 创建目录directory.deleteOnExit(); // 在进程结束时再去销毁System.out.println(directory创建后是否存在directory.exists());System.out.println(directory是否是目录directory.isDirectory());System.out.println(directory是否是文件directory.isFile());// 如果直接调用list()只会得到一个哈希值也就是引用的地址// 返回目录下的所有文件名System.out.println(Arrays.toString(directory.list()));// 返回目录下的所有文件名包括后代的后代System.out.println(Arrays.toString(directory.listFiles()));} }运行结果 4renameTo方法 public class Test {public static void main(String[] args) throws IOException {// 即使没有基准路径它也是默认在项目路径下创建File file1 new File(test.txt);file1.createNewFile();File file2 new File(test3.txt);// 将file1的文件名改为file2的文件名file1.renameTo(file2);System.out.println(file1.getName());} }重命名只需要有File对象即可不需要关注这个对象是否存在。可以理解为这个对象为 name 的载体。 public class Test {public static void main(String[] args) throws IOException {File file1 new File(test.txt); // 这个路径是在项目路径下System.out.println(file1.createNewFile());// .. 代表当前路径的上一级目录File file2 new File(../test.txt);System.out.println(file1.renameTo(file2));// 打印出文件的绝对路径System.out.println(file1.getCanonicalPath());} } 如果我们去仔细观察就会发现上述两个file1对象所指向的文件在重命名或者移动之后对应磁盘中的位置也发生了变化但是file1对象本身还是指向最初创建的那个文件路径。我们可以理解为file对象指向的是创建时的那个文件路径如果没有修改指向的话那么这个对象所指向的位置是不发生变化的在重命名或者移动文件的前后只是文件的位置发生了变化也就是file1对象所指向位置对应的文件被删除了剪切就是一种删除但是file1对象还是存在的。如下图所示 再举个例子小明、小红两人在谈恋爱小明经常会去小红家里找她玩。小军也喜欢小红但是由于小红已经名花有主了所以他只能默默地将这份爱意埋在心里但过了一段时间两人分手了恰巧小红又搬家了小军刚好知道小红搬到哪里了所以就开始疯狂追小红两人也顺利的在一起了。 上面例子中小明就是file1对象知道着小红的住址也就是文件的具体地址后面两人分手了也就只有小军知道小红的住址了这就是移动文件之后只有file2对象保存着文件的具体地址而file1对象只是保存着刚创建时的文件地址。 文件内容操作 上面是文件的系统操作下面我们来学习文件的内容操作。文件的内容操作就是去进行 IO也就是输入与输出。来修改文件的内容。 因为文件分为文本文件与二进制文件所以文件的读写操作也是分别有两种不同的方式。一种是针对文本文件的读写操作另一种是针对二进制文件的读写操作。Java中是通过流对象来操作文件的字节流可以用来读写二进制文件字符流可以用来读写文本文件。 二进制文件的读写操作 流对象也是一种资源因此我们在使用的时候也是需要先打开资源再是使用资源最后还得关闭资源。 打开资源也就是创建具体的流对象。 读写操作有两个祖宗类InputStream、OutputStream这两个都是抽象类后面都有一些继承它们的子类最常用的就是 FIleInputStream、FIleOutputStream。 读操作的构造方法 方法说明FileInputStream(File file)利用 File 构造文件输入流FileInputStream(String name)利用文件路径构造文件输入流 注意对于 OutputStream 来说默认情况下会尝试创建不存在的文件而对于 InputStream 来说只会去寻找文件如果没找到的话就会抛异常。  读操作的具体方法 方法说明int read()读取一个字节的数据返回-1代表已经完全读完了int read(byte[] b)最多读取 b.length 字节的数据到 b中返回实际读到的数量-1代表以及读完了int read(byte[] b, int off, int len)最多读取len-off 字节的数据到 b中从 off 开始读返回实际读到的数量-1代表以及读完了void close()关闭字节流 无参的版本返回的是读取到的具体数据带有 字节数组的版本返回的是读取的数量。 写操作的构造方法 方法说明FileOutputStream(File file)利用 File 构造文件输出流FileOutputStream(File file, boolean append)利用 File、append 构造文件输出流FileOutputStream(String name)利用文件路径构造文件输出流FileOutputStream(String name, boolean append)利用文件路径、append构造文件输出流 写操作的具体方法 方法说明void write(int b)将指定的字节写入文件void write(byte[] b)将b这个字节数组中的数据全部写入文件中void write(byte[] b, int off, int len)将 b 这个字节数组中从off 开始的数据写入文件中一共写len 个void close()关闭字节流 代码演示 public class Test {public static void main(String[] args) throws IOException {// 先创建一个文件File file new File(./test.txt);boolean isCreated file.createNewFile();if (isCreated) {// 开始往文件中写入数据// 1、打开文件输出流FileOutputStream fos new FileOutputStream(file);// 2、写入数据// 因为这里的输出流是字节流所以需要将字符串转换为字节数组Scanner scanner new Scanner(System.in);System.out.println(请输入要写入的文件内容);String str scanner.nextLine();fos.write(str.getBytes());// 3、关闭输出流fos.close();// 开始往文件中读取数据// 1、打开文件输入流FileInputStream fis new FileInputStream(file);// 2、读取数据byte[] bytes new byte[1024]; // 存放到数组中// 这里的读取的时候最多读取1024个字节int len 0;while ((len fis.read(bytes))! -1) {// 构造一个String对象将字节数组转换为字符串System.out.println(new String(bytes, 0, len));}// 3、关闭输入流fis.close();} else {System.out.println(文件创建失败);}} } 运行结果 注意每创建一个 OutputStream 对象包括子类会清除上次文件中残留的内容如果想要在上一次的内容上继续进行 写 操作只能在构造方法中传入一个 true表示可追加模式 文件的读写操作可以总结出一个模版 字节流 1、写数据到文件中 1创建一个FileOutputStream的输入流对象 2利用控制台输入数据到字符串中将字符串转为字节数组作为参数传入write方法 3关闭输入流对象 2、从文件中读数据 1创建一个FileInputStream的输入流对象 2创建一个字节数组利用read方法从文件中读取数据到字节数组中当read的返回值为-1时便可以结束读取了 3关闭输入流对象  字符流也是适用的只不过是换了输入流与输出流对象罢了。  文本文件的读写操作 读写操作有两个祖宗类Reader、Writer这两个都是抽象类后面都有一些继承它们的子类最常用的就是 FileReader、FileWriter。 读操作的构造方法 方法说明FileReader(String fileName)利用文件路径构造文件输入流FileReader(File file)利用 File 构造文件输入流 读操作的具体方法 方法说明int read()一次读入一个字符返回字符的整数值若到达文件末尾则返回 -1。int read(char[] cbuf)最多读取 cbuf.length 个字符的数据到 cbuf 中返回实际读到的数量-1代表以及读完了int read(char[] cbuf, int off, int n)最多读取len-off 字符的数据到 cbuf 中从 off 开始读返回实际读到的数量-1代表以及读完了void close()关闭字符流 写操作的构造方法 方法说明FileWriter(String fileName)利用文件路径构造文件输出流FileWriter(File file)利用 File 构造文件输出流 写操作的具体方法 方法说明void write(int c)将指定的字节写入文件void write(char[] cbuf)将 cbuf这个字符数组的数据全部写入文件中void write(String str)将指定字符串写入文件void close()关闭字符流 代码演示 public class Test {public static void main(String[] args) throws IOException {// 创建文件File file new File(./test.txt);boolean isCreated file.createNewFile();if (isCreated) {// 写入数据// 1、打开文件输出流FileWriter writer new FileWriter(file);// 2、往文件中写入数据Scanner scanner new Scanner(System.in);System.out.println(请输入要写入文件的数据);String str scanner.nextLine();writer.write(str);// 3、关闭输出流对象writer.close();// 读取数据// 1、打开文件输入流FileReader reader new FileReader(file);// 2、将文件的中的数据读取出来char[] chars new char[1024];int len 0;while ((len reader.read(chars)) ! -1) {System.out.println(new String(chars, 0, len));}} else {System.out.println(文件创建失败);}} }运行结果 注意FileWriter 也是默认是覆盖模式只要传入 true这样下一次在同一个文件中进行写操作时不会清除其中的内容而是会从最后一个字符开始写。 Java7之后就引进了 try-with-resources的语法。这个可以避免我们忘记释放资源从而导致的程序异常。 代码演示 public class Test {public static void main(String[] args) throws IOException {String filePath test.txt;// 使用 try-with-resources 自动关闭资源try (FileReader fr new FileReader(filePath)) {int len 0;char[] chars new char[1024];while ((len fr.read(chars)) ! -1) {System.out.println(new String(chars, 0, len));}} catch (IOException e) {e.printStackTrace();}} } 进入 try 时就会打开资源当除了 try 的{} 时就会自动释放资源。 好啦本期 初始JavaEE篇 —— 文件操作与IO 的学习之旅就到此结束啦我们下一期再一起学习吧
http://www.dnsts.com.cn/news/94093.html

相关文章:

  • 苏州吴江做网站公司中国室内设计公司排名前十强
  • 北京网站建设价格便宜北京信息发布平台
  • 创恒建设有限公司网站公司网站建设企划书
  • 厦门唯一官方网站广告软文小故事200字
  • 德兴网站建设关键词优化排名软件
  • 网站底部的备案号动态设计参考网站
  • 南昌企业制作网站设计建什么网站做cpa
  • 免费外贸建站平台网站设计经典案例欣赏
  • 机关网站建设 方案upscale wordpress
  • 济南网站建设排名常用的html编辑器有哪些
  • 怎么建立自己的网站平台杭州手机网站制作公司哪家好
  • 昌邑建设网站华为荣耀商店
  • funpinpin建站平台网站忧化教程
  • 搜狗网站seo秦皇岛建设路小学网站
  • 做效果图挣钱的网站网站开发用户需求分析
  • 传奇广告网站怎么做免费注册域名哪里有
  • 哪个网站可以做试卷重庆专业做网站公司
  • 高大上的企业网站烟台网站建设价格
  • 如何建设自己的网站 知乎很小众却很惊艳的公众号名字
  • pc网站做app京东厦门网站建设 软件园
  • 重点建设专业 专题网站网站建设推广的10种方法
  • 沈阳建站网页模板wordpress付费注册插件
  • 怎么做网站app做百度竞价用什么网站
  • 个人网站空间中国建设银行官网站企业网银
  • 衡水网站制作多少钱网站流量排行
  • 网站加外链国内重大新闻事件摘抄
  • 网站建设要学习什么aso优化榜单
  • 淮南 网站建设 有限公司免费WordPress门户一号
  • 网站制作与建设教程下载网站后台的搭建
  • 创建一个免费网站网站数据库是干什么的