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

网站建设与维护 许宝良 课件上海工程项目查询

网站建设与维护 许宝良 课件,上海工程项目查询,做网站比较专业的公司,安全的定制型网站建设文章目录 文章目录 前言 一 . 文件 文件路径 文件类型 Java中操作文件 File 概述 属性 构造方法 方法 createNewFile mkdir 二 . 文件内容的读写 - IO InputStream 概述 FileInputStream 概述 利用 Scanner 进行字符读取 OutputStream 概述 PrintWriter封装O…文章目录 文章目录 前言 一 . 文件 文件路径 文件类型 Java中操作文件 File 概述 属性 构造方法 方法 createNewFile mkdir 二 . 文件内容的读写 - IO InputStream 概述 FileInputStream 概述 利用 Scanner 进行字符读取 OutputStream 概述 PrintWriter封装OutPutStream 三 . 小程序练习 总结 前言 大家好,今天给大家介绍一下文件IO这方面的内容 一 . 文件 文件是存储在计算机或其他电子设备中的数据集合可以包含文本、图像、音频、视频等各种形式的信息。文件通常以特定的格式和扩展名来标识其内容和用途例如.txt、.docx、.jpg、.mp3等。文件可以被创建、编辑、复制、移动、删除等操作以便在计算机系统中进行管理和使用。 文件路径 如何在文件系统中如何定位我们的一个唯一的文件就成为当前要解决的问题但这难不倒计算机科学 家因为从树型结构的角度来看树中的每个结点都可以被一条从根开始一直到达的结点的路径所描 述而这种描述方式就被称为文件的绝对路径absolute path。 除了可以从根开始进行路径的描述我们可以从任意结点出发进行路径的描述而这种描述方式就被 称为相对路径relative path相对于当前所在结点的一条路径 文件类型 即使是普通文件根据其保存数据的不同也经常被分为不同的类型我们一般简单的划分为文本文件 和二进制文件分别指代保存被字符集编码的文本和按照标准格式保存的非被字符集编码过的文件。 文本文件 文本文件包含的是人类可读的文本内容通常使用ASCII或Unicode编码。这些文件可以被文本编辑器打开和编辑如.txt、.doc、.html等。   二进制文件二进制文件包含的是以二进制形式编码的数据通常是计算机程序、图像、音频、视频等。这些文件不是以文本形式存储而是以特定的格式和结构存储数据通常需要特定的应用程序才能打开和处理。  Java中操作文件 File 概述 我们先来看看 File 类中的常见属性、构造方法和方法 属性 修饰符及类型属性说明static StringpathSeparator依赖于系统的路径分隔符,String 类型的表示static charpathSeparator依赖于系统的路径分隔符,char 类型的表示 构造方法 签名说明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()判断用户是否对文件有可写权限 把有细节的给大家列举一下,其他的了解就行,用到的时候再查,谁记得住啊! createNewFile 创建一个新的文件 mkdir 二 . 文件内容的读写 - IO 文件 I/OInput/Output就是计算机程序读写文件的操作。比如你可以用程序打开一个文本文件读取其中的内容或者把程序中的数据写入到文件里。这样的操作在很多应用中都很常见比如处理文本文件、保存用户数据等等。 流的概念 输入输出流是计算机编程中用于处理输入和输出的抽象概念。流Stream代表了数据的顺序流动输入输出流则分别用于从输入设备如键盘、鼠标、文件等读取数据和向输出设备如显示器、打印机、文件等写入数据。 输入设备 --- 输入流 --- 程序 程序 --- 输出流 --- 输出设备 InputStream 概述 InputStream输入流是Java编程语言中用于从数据源如文件、网络连接、内存等读取字节流的抽象类。它是所有字节输入流类的超类提供了一系列方法来读取字节数据 方法 修饰符及返回值类型方法签名说明intread()读取一个字节的数据返回 -1 代表已经完全读完了intread(byte[] b)最多读取 b.length 字节的数据到 b 中返回实际读到的数量 -1 代表以及读完了intread(byte[] b, int off, int len)最多读取 len - off 字节的数据到 b 中放在从 off 开始返 回实际读到的数量, -1 代表以及读完了voidclose() 关闭字节流 FileInputStream 概述 构造方法 签名说明FileInputStream(File file)利用 File 构造文件输入流FileInputStream(String name)利用文件路径构造文件输入流 练习: 在根目录下准备一个目录 写入英文字母(不能写中文),随便什么都行,下面给出参考代码 /* * 测试 FileInputStream * */ public class TestDemo2 {public static void main(String[] args) throws IOException {InputStream inputStream null;try {inputStream new FileInputStream(./aaa);while(true){int len inputStream.read();if(len -1){break;}System.out.printf(%c,len);}} catch (IOException e) {throw new RuntimeException(e);}finally {inputStream.close();}} } IO操作是很消耗时间的,根据这一点我们可以给代码做点优化:  /* * 测试 FileInputStream * */ public class TestDemo1 {public static void main(String[] args){try {InputStream inputStream new FileInputStream(./aaa);/** 每次IO读取的内容为1024byte* */byte[] buff new byte[1024];int len 0;while(true){len inputStream.read(buff);if(len -1){break;}/** 在内存中的操作要远远大于IO操作* */for(int i 0; ilen; i){System.out.printf(%c,buff[i]);}}} catch (IOException e) {throw new RuntimeException(e);}} } 根据上面的两个问题,整个流家族就算是浮出水面了,给大家介绍一下,但是没有代码,因为代码都是差不多的,给大家说一个体系即可 第一个问题: 为什么不能出现中文? 文件和程序之间之间的 流 传递的是二进制数据010101001,FileInputStream是字节流可以直接在流中进行传递,但是中文并不是二进制数据,想要传递必须通过一种规则将其转变成为二进制数据,并且在接收方将其按照相同的规则逆转化为中文(两种规则不同就会乱码),这就是字符流 字符流是对基本流的一种封装,在其上面加上了一套转换规则使其能够在流中进行传递 转换规则 ---- 字符集 字符集Character Set是一种将字符与数字之间进行映射的规则集合。在计算机中所有的数据最终都是以数字的形式存储和处理的包括字符数据。字符集定义了字符与数字之间的对应关系使得计算机能够正确地存储、传输和显示各种语言的文本。 常见的字符集包括 ASCII美国信息交换标准代码、ISO-8859-1、UTF-8Unicode转换格式-8位、UTF-16等。ASCII是最早的字符集之一它只包含了英文字母、数字和一些特殊符号而且只使用了一个字节来表示一个字符。ISO-8859-1是ISO制定的字符集标准包含了更多的字符但仍然是单字节字符集。 而UTF-8和UTF-16则是Unicode字符集的实现方式之一。Unicode是一个用于表示世界上几乎所有字符的字符集包括各种语言的文字、符号和表情等。UTF-8使用1到4个字节来表示一个字符而UTF-16使用2或者4个字节来表示一个字符。 第二个问题: 说是问题其实也算不上,只能说是一种启示吧 什么启示呢? 我们都知道IO操作很浪费时间,那么开发java的那些大佬肯定也知道了,他们给出了一套解决方案 - 缓冲流 和字符流相同它也是对基础流的封装 还有一些其他的封装的流,就不过多介绍,大家可自行了解 利用 Scanner 进行字符读取 上述例子中我们看到了对字符类型直接使用 InputStream 进行读取是非常麻烦且困难的所以我们 使用一种我们之前比较熟悉的类来完成该工作就是 Scanner 类。 构造方法说明Scanner(InputStream is, String charset)使用 charset 字符集进行 is 的扫描读取 import java.io.*; import java.util.*; // 需要先在项目目录下准备好一个 hello.txt 的文件里面填充 你好中国 的内容 public class Main {public static void main(String[] args) throws IOException {try (InputStream is new FileInputStream(hello.txt)) {try (Scanner scanner new Scanner(is, UTF-8)) {while (scanner.hasNext()) {String s scanner.next();System.out.print(s);}}}} } 上述代码使用了一种语法规则 try-with-resources语句是从Java 7版本开始引入的一种用于自动关闭资源的语法结构。通过try-with-resources语句可以在try块中声明一个或多个资源这些资源会在try块执行完毕后自动关闭无需显式调用close()方法。 OutputStream 概述 OutputStream是Java中用于写入字节数据的抽象类。它是所有字节输出流类的超类用于向各种目标如文件、网络连接、内存缓冲区等写入字节数据。 方法 修饰符及返回值类型方法签名说明voidwrite(int b)写入要给字节的数据voidwrite(byte[] b)将 b 这个字符数组中的数据全部写入 os 中intwrite(byte[] b, int off, int len)将 b 这个字符数组中从 off 开始的数据写入 os 中一共写 len 个voidclose()关闭字节流voidflush()重要我们知道 I/O 的速度是很慢的所以大多的 OutputStream 为 了减少设备操作的次数在写数据的时候都会将数据先暂时写入内存的 一个指定区域里直到该区域满了或者其他指定条件时才真正将数据写 入设备中这个区域一般称为缓冲区。但造成一个结果就是我们写的 数据很可能会遗留一部分在缓冲区中。需要在最后或者合适的位置 调用 flush刷新操作将数据刷到设备中。 和上面的inputStream相同,依然有FileOutputStream,Writer(字符流),BufferedOutputStream(缓冲流) 就不过多介绍了 PrintWriter封装OutPutStream 上述我们其实已经完成输出工作但总是有所不方便我们接来下将 OutputStream 处理下使用 PrintWriter 类来完成输出因为 PrintWriter 类中提供了我们熟悉的 print/println/printf 方法 import java.io.*; public class Main {public static void main(String[] args) throws IOException {try (OutputStream os new FileOutputStream(output.txt)) {try (OutputStreamWriter osWriter new OutputStreamWriter(os, UTF8)) {try (PrintWriter writer new PrintWriter(osWriter)) {writer.println(我是第一行);writer.print(我的第二行\r\n);writer.printf(%d: 我的第三行\r\n, 1 1);writer.flush();}}}} }三 . 小程序练习 1. 扫描指定目录并找到名称中包含指定字符的所有普通文件不包含目录并且后续询问用户是否要 删除该文件 /* * 遍历给定的目录,删除指定的文件 * */ public class SearchDirectory {private static final Scanner scanner new Scanner(System.in);public static void main(String[] args) {// 1.让用户树入一个目录,后续的查找都是根据这个目录来进行的System.out.println(请输入你要查找的目录: );File rootPath new File(scanner.next());// 2.在让用户输入要搜索/删除的关键字System.out.println(请输入你要搜索/删除的关键字: );String word scanner.next();// 3.判断目录是否合法if(!rootPath.isDirectory()){System.out.println(您输入的目录不是合法目录!);return;}// 4.使用DFS遍历该目录scanDir(rootPath,word);}private static void scanDir(File rootPath, String word) {// 1.先列出当前目录包含哪些内容if(rootPath null || rootPath.length() 0){// 空目录或者非法目录return;}File[] files rootPath.listFiles();for(File f : files){System.out.println(f.getAbsolutePath());if(f.isFile()){delete(f,word);}else{// 递归遍历scanDir(f,word);}}}private static void delete(File f, String word) {if(f.getName().contains(word)){System.out.println(是否要删除 f.getAbsolutePath() (Y/N)?);String next scanner.next();if(next.equals(Y)||next.equals(y)){f.delete();}}} } 2.进行普通文件的复制 /* * 文件拷贝 * */ public class copyFile {public static void main(String[] args) throws IOException {// 1.输入源文件路径目标文件路径 并进行合法性判断Scanner sc new Scanner(System.in);System.out.println(请输入源文件路径: );File srcPath new File(sc.next());if(!srcPath.isFile()){System.out.println(输入的源文件路径不合法!);return;}System.out.println(请输入目标文件路径: );File destPath new File(sc.next());// 不要求目标文件存在,但是必须保证目标文件的目录是存在的if(!destPath.getParentFile().isDirectory()){System.out.println(输入的目标文件路径不合法!);return;}// 2.开始拷贝try(InputStream inputStream new FileInputStream(srcPath);OutputStream outputStream new FileOutputStream(destPath)){while(true){byte[] bytes new byte[1024];int n inputStream.read(bytes);if(n -1){break;}outputStream.write(bytes,0,n);}}} } 总结 以上就是这篇博客的主要内容了,大家多多理解,下一篇博客见!
文章转载自:
http://www.morning.drnjn.cn.gov.cn.drnjn.cn
http://www.morning.tqbyw.cn.gov.cn.tqbyw.cn
http://www.morning.mnjyf.cn.gov.cn.mnjyf.cn
http://www.morning.tmfm.cn.gov.cn.tmfm.cn
http://www.morning.bnrff.cn.gov.cn.bnrff.cn
http://www.morning.gyzfp.cn.gov.cn.gyzfp.cn
http://www.morning.ffbp.cn.gov.cn.ffbp.cn
http://www.morning.mygbt.cn.gov.cn.mygbt.cn
http://www.morning.bmtkp.cn.gov.cn.bmtkp.cn
http://www.morning.bntfy.cn.gov.cn.bntfy.cn
http://www.morning.zbkwj.cn.gov.cn.zbkwj.cn
http://www.morning.ttdbr.cn.gov.cn.ttdbr.cn
http://www.morning.dmfdl.cn.gov.cn.dmfdl.cn
http://www.morning.qlrtd.cn.gov.cn.qlrtd.cn
http://www.morning.mbfj.cn.gov.cn.mbfj.cn
http://www.morning.bpttm.cn.gov.cn.bpttm.cn
http://www.morning.stfdh.cn.gov.cn.stfdh.cn
http://www.morning.tzpqc.cn.gov.cn.tzpqc.cn
http://www.morning.lxlzm.cn.gov.cn.lxlzm.cn
http://www.morning.csdgt.cn.gov.cn.csdgt.cn
http://www.morning.gqflj.cn.gov.cn.gqflj.cn
http://www.morning.qlrwf.cn.gov.cn.qlrwf.cn
http://www.morning.dodoking.cn.gov.cn.dodoking.cn
http://www.morning.kmqms.cn.gov.cn.kmqms.cn
http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn
http://www.morning.hpjpy.cn.gov.cn.hpjpy.cn
http://www.morning.fewhope.com.gov.cn.fewhope.com
http://www.morning.tkqzr.cn.gov.cn.tkqzr.cn
http://www.morning.wnywk.cn.gov.cn.wnywk.cn
http://www.morning.ykwqz.cn.gov.cn.ykwqz.cn
http://www.morning.qzdxy.cn.gov.cn.qzdxy.cn
http://www.morning.c7623.cn.gov.cn.c7623.cn
http://www.morning.ysskn.cn.gov.cn.ysskn.cn
http://www.morning.splkk.cn.gov.cn.splkk.cn
http://www.morning.pffqh.cn.gov.cn.pffqh.cn
http://www.morning.yydeq.cn.gov.cn.yydeq.cn
http://www.morning.ptdzm.cn.gov.cn.ptdzm.cn
http://www.morning.sgfpn.cn.gov.cn.sgfpn.cn
http://www.morning.kycwt.cn.gov.cn.kycwt.cn
http://www.morning.krtcjc.cn.gov.cn.krtcjc.cn
http://www.morning.jfjqs.cn.gov.cn.jfjqs.cn
http://www.morning.gtxrw.cn.gov.cn.gtxrw.cn
http://www.morning.dbddm.cn.gov.cn.dbddm.cn
http://www.morning.mbrbk.cn.gov.cn.mbrbk.cn
http://www.morning.lcjw.cn.gov.cn.lcjw.cn
http://www.morning.sjbpg.cn.gov.cn.sjbpg.cn
http://www.morning.ffgbq.cn.gov.cn.ffgbq.cn
http://www.morning.rfxg.cn.gov.cn.rfxg.cn
http://www.morning.nlpbh.cn.gov.cn.nlpbh.cn
http://www.morning.kwblwbl.cn.gov.cn.kwblwbl.cn
http://www.morning.kfstq.cn.gov.cn.kfstq.cn
http://www.morning.gkjnz.cn.gov.cn.gkjnz.cn
http://www.morning.gtwtk.cn.gov.cn.gtwtk.cn
http://www.morning.xclgf.cn.gov.cn.xclgf.cn
http://www.morning.ngqdp.cn.gov.cn.ngqdp.cn
http://www.morning.plfy.cn.gov.cn.plfy.cn
http://www.morning.rsjf.cn.gov.cn.rsjf.cn
http://www.morning.yqpck.cn.gov.cn.yqpck.cn
http://www.morning.rzbgn.cn.gov.cn.rzbgn.cn
http://www.morning.lmfmd.cn.gov.cn.lmfmd.cn
http://www.morning.ttxnj.cn.gov.cn.ttxnj.cn
http://www.morning.kbbmj.cn.gov.cn.kbbmj.cn
http://www.morning.bqts.cn.gov.cn.bqts.cn
http://www.morning.yyngs.cn.gov.cn.yyngs.cn
http://www.morning.mrnnb.cn.gov.cn.mrnnb.cn
http://www.morning.tygn.cn.gov.cn.tygn.cn
http://www.morning.msfqt.cn.gov.cn.msfqt.cn
http://www.morning.rglzy.cn.gov.cn.rglzy.cn
http://www.morning.yrycb.cn.gov.cn.yrycb.cn
http://www.morning.vvdifactory.com.gov.cn.vvdifactory.com
http://www.morning.pwwdp.cn.gov.cn.pwwdp.cn
http://www.morning.wqcbr.cn.gov.cn.wqcbr.cn
http://www.morning.nknt.cn.gov.cn.nknt.cn
http://www.morning.xqknl.cn.gov.cn.xqknl.cn
http://www.morning.xznrk.cn.gov.cn.xznrk.cn
http://www.morning.njhyk.cn.gov.cn.njhyk.cn
http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn
http://www.morning.rjrnx.cn.gov.cn.rjrnx.cn
http://www.morning.rwlns.cn.gov.cn.rwlns.cn
http://www.morning.kgxyd.cn.gov.cn.kgxyd.cn
http://www.tj-hxxt.cn/news/243496.html

相关文章:

  • 优秀网站制作怎么把wordpress的登录框放在首页
  • 源码网站怎么搭建wordpress登录页定制
  • 做a免费网站360网站导航公司地址怎么做
  • 网站做编辑服装设计学什么
  • 网站如何搭建网站开发网站排名优化
  • 网站产品页面企业查询系统官网
  • 信产部网站备案优化大师下载安装
  • 稳赚导师免费赚钱微信号网站seo报表
  • 做ppt的软件怎么下载网站wordpress 创建数据库表
  • 蓝奏云注册网站wordpress地图无插件
  • 微九州合作网站西安有那些做网站的公司好
  • 网站托管内容淘宝网站建设设计模板
  • 做门户型网站免费制作图片加文字
  • 替老外做网站常州网站建设机构
  • .net core 网站开发企业网站建设包含哪些内容
  • 做品牌特卖的网站电子商务网站开发设计
  • 网站遭攻击app 网站开发公司电话
  • 企业网站产品分类多怎么做seo做标书的网站
  • 怎么做符合seo的网站石家庄百度推广官网
  • 站群网站内容枣强网站建设价格
  • 成都 网站备案 幕布拍摄点dede中英文网站切换
  • 域名备案网站服务内容网站建设 麓谷
  • 外贸网站建设网站说说刷赞网站推广
  • 美橙互联网站建设进不去宿迁网站建设SEO优化营销
  • 哪个不是网站开发工具如何建设万网网站
  • 网站改版 信科网络长沙优化科技
  • 网站主题网免费网站站长推广
  • 濮阳网站做网站 支付账号免费吗
  • 广告发布网站模板苏州优化平台
  • 吴江建设局网站打不开了wordpress 文章 html