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

网站建设外贸广告公司注册

网站建设外贸,广告公司注册,腾讯邮箱企业邮箱登录入口,湘潭今天刚刚发生的新闻文件(File) 狭义的文件: 指的是硬盘上的文件和目录 广义的文件: 泛指计算机中很多软硬件资源(操作系统中把很多硬件和软件资源抽象成了文件, 按照文件的方式同意管理) 本章内容只讨论狭义的文件 路径 绝对路径: 以c: , d: 盘符开头的路径相对路径: 以当前所在的目录为基准(…

文件(File)

狭义的文件: 指的是硬盘上的文件和目录
广义的文件: 泛指计算机中很多软硬件资源(操作系统中把很多硬件和软件资源抽象成了文件, 按照文件的方式同意管理)

本章内容只讨论狭义的文件

路径

  1. 绝对路径: 以c: , d: 盘符开头的路径
  2. 相对路径: 以当前所在的目录为基准(工作目录), 以. 或 … 开头(有时 . 可以省略), 找到指定的路径

那么我们的IDEA的工作路径在哪呢?
IDEA 的工作路径默认就是在当前的项目所在目录
在这里插入图片描述

Java 对于文件的操作

  1. 针对文件系统操作(文件的创建, 删除, 重命名)
  2. 针对文件内容的操作(文件的读和写)

Java 标准库中提供了File这个类

在这里插入图片描述
parent 表示当前文件所在目录
child 表示自身的文件名

        File file = new File("d:/text.txt");

构建一个File 对象

import java.io.File;
import java.io.IOException;public class IODemo1 {public static void main(String[] args) throws IOException {File file = new File("./test1.txt");// 获取文件名System.out.println(file.getName());// 获取父级路径System.out.println(file.getParent());// 获取完整路径System.out.println(file.getPath());// 获取绝对路径System.out.println(file.getAbsoluteFile());// 获取绝对路径的简化路径System.out.println(file.getCanonicalPath());}
}

判断文件

import java.io.File;public class IODemo2 {public static void main(String[] args) {File file = new File("d:/f1/f2/test1.txt");// 这个文件是否存在System.out.println(file.exists());// 这是不是一个文件System.out.println(file.isFile());// 这是一个目录吗System.out.println(file.isDirectory());}
}

创建文件

import java.io.File;
import java.io.IOException;public class ThreadDemo3 {public static void main(String[] args) throws IOException {File file = new File("./test.txt");//创建这个文件file.createNewFile();}
}

在这里插入图片描述
删除文件

import java.io.File;public class IODemo4 {public static void main(String[] args) {File file = new File("./test.txt");// 删除文件file.delete();}
}

deleteOnExit


import java.io.File;
import java.io.IOException;public class IODemo5 {public static void main(String[] args) throws IOException {File file = new File("test.txt");System.out.println(file.exists());System.out.println(file.createNewFile());System.out.println(file.exists());//程序运行结束后删除file.deleteOnExit();System.out.println(file.exists());}
}

目录的创建

import java.io.File;public class IODemo6 {public static void main(String[] args) {File dir = new File("d:/f1/f2/f3/f3");dir.mkdir();   // 只能创建一级目录dir.mkdirs();  // 创建多级目录}
}

文件的重命名

import java.io.File;public class IODemo7 {public static void main(String[] args) {File file = new File("./aaa/bbb/test.txt");File file1 = new File("./aaa/bbb/test2.txt");file.renameTo(file1);}
}

Java 标准库的流对象

从类型上分成两个大类

  1. 字节流: 操作二进制数据的
  2. 字符流: 操作文本数据

在这里插入图片描述
read 无参数版本:一次只读一个字节
read 有一个参数版本: 把读到的内容填充到参数的这个字节数组中, (此处的参数是一个输出型参数), 返回值是实际读取的字节数
read 有三个参数的版本: 和一个参数的差不多. 只不过是往数组的一部分区间里尽可能填充

思考:

read 读取的是一个字节, 按理说应该返回一个 byte , 但是实际上是返回int, 这是为什么呢?
这里除了表示byte里的0~255 (-128 ~ 127) 这样的情况外, 还需要表示一个特殊情况, -1,这个标记表示读取文件结束了(读到末尾了).

UTF-8 每个汉字三个字节

字节流读取:

import java.io.*;public class IODemo8 {// 使用字节流读取文件public static void main(String[] args) throws IOException {// 创建InputStream 对象的时候, 使用绝对路径或者相对路径都行, 也可以使用File对象InputStream inputStream = new FileInputStream("d:/test.txt");//        //进行读操作
//        while (true) {
//            int b = inputStream.read();
//            if(b == -1) {
//                // 读取完毕
//                break;
//            }
//            //System.out.println(""+ (byte)b);
//            System.out.printf("%x",(byte)b);
//        }while (true) {byte[] buffer = new byte[1024];int len = inputStream.read(buffer);System.out.println("len: "+ len);if (len == -1) {break;}// 此时读取的字符就被放到了byte[] 中了.for (int i = 0; i < len; i++) {System.out.printf("%x\n", (byte)buffer[i]);}}inputStream.close();}
}

buffer 存在的意义,是为了提高 IO 操作的效率,
单次 IO 操作, 是要访问硬盘的, 所以就会比较耗费时间,
缩短了 IO 操作的次数, 所以效率也就提高了

字节流写文件
在这里插入图片描述
也是类似的三个方法

public class IODemo9 {// 进行写文件public static void main(String[] args) throws IOException {OutputStream outputStream = new FileOutputStream("d:/test.txt");outputStream.write(97);outputStream.write(98);outputStream.write(99);outputStream.write(100);outputStream.close();}
}

在这里插入图片描述
更推荐的写法
这个写法虽然没有显示的写 close , 但是在 try 语句执行完的时候, 会自动执行到 close

public class IODemo {public static void main(String[] args) throws IOException {try (OutputStream outputStream = new FileOutputStream("d:/test.txt")) {outputStream.write(97);outputStream.write(97);outputStream.write(97);outputStream.write(97);outputStream.write(97);outputStream.write(97);}}
}

字符流读文件

package io;import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;public class IODemo10 {// 字符流的操作public static void main(String[] args) {try (Reader reader = new FileReader("d:/test.txt")) {while (true) {int ch = reader.read();if (ch == -1) {break;}System.out.println("" + (char)ch);}} catch (IOException e) {throw new RuntimeException(e);}}
}

字符流写文件

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;public class IODemo11 {// 字符流写文件public static void main(String[] args) {try (Writer writer = new FileWriter("d:/test.txt")) {writer.write("hello world");} catch (IOException e) {throw new RuntimeException(e);}}
}

下面我们实现一个删除文件的小程序

import java.io.File;
import java.util.Scanner;public class IODemo12 {private static Scanner scanner = new Scanner(System.in);public static void main(String[] args) {// 让用户输入一个指定搜索的目录System.out.println("请输入一个要搜索的路径: ");String basePath = scanner.next();// 针对用户输入进行简单判定,File root = new File(basePath);if (!root.isDirectory()) {// 路径不存在, 或者是一个普通文件, 此时无法进行搜索System.out.println("输入的路径有误");return;}System.out.println("请输入要删除的文件名: ");// 此处使用 next, 不用 next.LineString nameToDelete = scanner.next();// 针对指定路径进行扫描, 递归操作// 先从根目录出发(root)// 先看看这个目录是否有我们要删除的文件, 如果有就删除, 否则下一个// 如果是包含了一些目录, 那就进行递归scanDir(root,nameToDelete);}private static void scanDir(File root, String nameToDelete) {// 1. 先列出当前路径下包含和目录File[] files = root.listFiles();if (files == null) {// 当前目录没东西, 进行下一步递归return;}// 遍历当前列出的结果for (File f: files) {if (f.isDirectory()) {// 如果是目录就进一步递归scanDir(f,nameToDelete);} else {// 如果是文件就判断if (f.getName().contains(nameToDelete)) {System.out.println("确认要删除 " + f.getName() + "吗?");String choice = scanner.next();if (choice.equals("Y") || choice.equals("y")) {f.delete();System.out.println("删除成功");} else {System.out.println("删除取消");}}}}}
}

文件的复制
就是把一个文件按照字节一次读取, 把结果写入另一个文件中

import java.io.*;
import java.util.Scanner;// 文件的拷贝
public class IODemo13 {public static void main(String[] args) throws RuntimeException {// 输入两个路径 一个源 一个目标路径 (从哪里拷贝到哪)Scanner scanner = new Scanner(System.in);System.out.println("请输入要拷贝哪个文件: ");String srePath = scanner.next();System.out.println("请输入要拷贝到哪个地方: ");String destPath = scanner.next();File srcFile = new File(srePath);if (!srcFile.isFile()) {System.out.println("您输入的源路径有误!");return;}File destFile = new File(destPath);if (destFile.isFile()) {// 如果已经存在不能拷贝System.out.println("您输入的目标路径有误: ");return;}// 进行拷贝操作try (InputStream inputStream = new FileInputStream(srcFile);OutputStream outputStream = new FileOutputStream(destFile)) {// 进行读文件操作while (true) {int b = inputStream.read();if (b == -1) {break;}outputStream.write(b);}} catch (IOException e) {e.printStackTrace();}}
}
http://www.ds6.com.cn/news/83410.html

相关文章:

  • 兴化网站开发关键词提取工具app
  • 邢台做wap网站价格开网站需要什么流程
  • 靠谱的做任务赚钱网站个人能接广告联盟吗
  • 淄博政府网站建设公司哪家专业百度sem推广
  • 网站如何做攻击防护宁波网站关键词优化排名
  • wordpress 多域名登陆搜索引擎优化有哪些要点
  • 做易拉宝设计的网站怎么设计网站
  • 顺义青岛网站建设百度搜索引擎网站
  • 中职示范校建设专题网站seo网站推广软件排名
  • 电子商务网站建设的作用营销网站建设规划
  • 软件工程的定义上海网站排名seo公司哪家好
  • 企业做电商网站韶山seo快速排名
  • 怎样使用网站模板新开店铺怎么做推广
  • 绿色大气网站模板技能培训网站
  • 西安医疗网站制作关键词优化师
  • 二级域名需要备案吗英文外链seo兼职
  • 公安局松江分局网站下载百度极速版
  • 家具网站开发设计任务书与执行方案简述优化搜索引擎的方法
  • 客服在线人工服务seo如何快速排名
  • 网站正在维护模板青岛seo公司
  • 怎么做推广网站搜索引擎排名查询
  • 全国疫情高峰感染高峰福州网站seo优化公司
  • 怎么做样网站百度收录网站入口
  • 冬季黄山旅游攻略现在百度怎么优化排名
  • 南和网站建设网络营销的发展前景
  • 合肥做网站yuanmus广告公司网上接单平台
  • 怎样拍照产品做网站域名备案查询站长工具
  • 办网站除了域名备案 还需要什么seo网站优化专员
  • 求一个dw做的网站seo全网营销的方式
  • 重庆品牌服装网站建设百度贴吧广告投放价格