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

西安建设网站公司桂林论坛网app

西安建设网站公司,桂林论坛网app,石家庄网站开发与优化,网页微信登录首页目录 文件类型 File概述 属性 构造方法 常用方法 Reader Writer InputStream OutputStream 字节流转字符流 通过Scanner读取InputStream 通过PrintWriter转换outputstream 示例 文件类型 从编程的角度看#xff0c;文件类型主要就是两大类 文本#xff08;文…目录 文件类型 File概述 属性 构造方法 常用方法 Reader Writer InputStream OutputStream 字节流转字符流  通过Scanner读取InputStream 通过PrintWriter转换outputstream 示例  文件类型 从编程的角度看文件类型主要就是两大类 文本文件中保存的数据都是字符串保存的内容都是合法的字符二进制文件中保存的数据仅仅是二进制数据不要求保存的内容是合法的字符 File概述 属性 修饰符及类型属性说明static StringpathSeparator依赖于系统的路径分隔符String类型表示static charpathSeparator依赖于系统的路径分隔符char类型表示 D:\ 如上所示“\”就是一个路径分隔符  构造方法 签名说明FileFile parentString child根据父目录孩子文件路径创建一个新的File实例FileString pathname根据文件路径创建你一个新的File实例路径可以是绝对路径或者相对路径FileString parent,String chile根据父目录孩子我呢见路径创建一个新的File实例父目录用路径表示 常用方法 修饰符及返回类型方法签名说明StringgetParent()返回File对象的父目录文件路径StringgetName()返回File对象的纯文本名称String        getPath()返回File对象的文件路径StringgetAbsolutePath()返回File对象的绝对路径StringgetCanonicalPath()返回File对象修饰过的绝对路径booleanexists()判断File对象描述的文件是否真实存在booleanisDirectory()判断File对象代表的文件是否是一个目录booleanisFile()判断File对象代表的文件是否是一个普通文件booleancreateNewFile()根据File对象自动创建一个空文件成功创建返回truebooleandelete()根据File对象,删除该文件voiddeleteOnExit()根据File对象标注文件将被删除删除动作会到JVM运行结束时才删除String[]list()返回File对象代表的目录下所有文件名File[]listFiles()返回File对象代表的目录下的所有文件以File对象表示booleanmkdir()创建File对象代表的目录booleanmkdirs()创建File对象代表的目录如果必要会创建中间目录booleanrenameTo(File dest)进行文件改名也可以视为平时的剪切、粘贴操作booleancanRead()判断用户是否对文件有可读权限booleancanWrite()判断用户是否对文件有可写权限 在标准库中提供的读写文件的流对象有很多个类可以归结为两个大的类别中 1、字节流对应着二进制文件每次读/写的最小单位都是“字节” InputStreamOutputStream 2、字符流对应着文本文件 每次读/写的最小单位是“字符”一个字符可能对应多个字节跟当前字符集编码方式有关本质上是针对字节流进行了又一层封装 ReaderWriter 上述四种是抽象类不能直接new实例 无参数read一次读取一个字符一个参数read一次读取若干个字符会把参数指定的buf数组给填充满三个参数read一次读取若干个字符会把参数执行的cbuf数组中从off这个位置开始到len这么长的范围尽量填满 使用示例 Reader 一次read一个字符 try(Reader reader new FileReader(D:/data.txt);){     while (true) {         int c reader.read();         if (c -1) {             //读取完毕             break;         }         char ch (char) c;         System.out.println(ch);     }      } catch (IOException e) {     throw new RuntimeException(e); } read方法一次读取一个字符返回数字当返回值为-1时代表读取到文件末尾 一次read多个字符 Reader readernew FileReader(D:/data.txt); try{     while(true){         char[] chnew char[1024];         int n reader.read(ch);         if(n-1)         {             //读取完毕             break;         }         System.out.println(读取长度n);         System.out.println(Arrays.toString(ch));     } } catch (IOException e) {     throw new RuntimeException(e); } finally {     try {         reader.close();     } catch (IOException e) {         throw new RuntimeException(e);     } } 这样写虽然能够解决中途抛异常导致reader不能正常释放但是不够优雅我们可以采取try with resources方法 ,Reader readernew FileReader(D:/data.txt)在出了作用域后会自动调用close方法 try(Reader readernew FileReader(D:/data.txt)){     while(true){         char[] chnew char[1024];         int n reader.read(ch);         if(n-1)         {             //读取完毕             break;         }         System.out.println(读取长度n);         System.out.println(Arrays.toString(ch));     } } catch (IOException e) {     throw new RuntimeException(e); }  Writer try(Writer writernew FileWriter(D:/data.txt)) {     writer.write(你好你好); } catch (IOException e) {     throw new RuntimeException(e); } Writer写入文件默认情况下会将原来的数据清空掉如果不想清空需要在构造函数中再传入一个参数 这样就能实现追加写 Writer writernew FileWriter(D:/data.txttrue) utf8编码一个中文字符是3个字节在Java标准库内部 如果是只使用char此时使用的字符集固定就是unicode如果是使用String此时就会自动的把每个字符的unicode转换utf8 InputStream 字节流与字符流不同的是传入的数组是byte类型的read返回值是int其实是byte0-255之间的值-1表示到达文件末尾 try(InputStream inputStreamnew FileInputStream(D:/data.txt)) {     byte[] buffernew byte[1024];     int ninputStream.read(buffer);     System.out.println(n n);     for(int i0;in;i)     {         System.out.printf(%x\n,buffer[i]);     } } catch (IOException e) {     throw new RuntimeException(e); } OutputStream OutputStream和Writer类似打开一个文件默认就会清空文件的原有内容 try(OutputStream outputStreamnew FileOutputStream(d:/data.txt)) {     String str你好;     outputStream.write(str.getBytes()); } catch (IOException e) {     throw new RuntimeException(e); } 若要使用追加的方式写入可以在构造方法的第二个参数中传入true OutputStream outputStreamnew FileOutputStream(d:/data.txttrue) 字节流转字符流  当提供的是字节流对象但实际数据内容是文本数据我们可以将字节流转换成字符流 通过Scanner读取InputStream try(InputStream inputStreamnew FileInputStream(d:/data.txt)) {     Scanner scannernew Scanner(inputStream);     String strscanner.next();     System.out.println(str); } catch (IOException e) {     throw new RuntimeException(e); } 通过PrintWriter转换outputstream try(OutputStream outputStreamnew FileOutputStream(d:/data.txt)) {     PrintWriter writernew PrintWriter(outputStream);     writer.println(hello); } catch (IOException e) {     throw new RuntimeException(e); } PrintWriter这样的类在进行写入的时候不一定是直接写硬盘而是先把数据写入到一个内存构成的缓冲区中当我们写入缓冲区之后如果还没来得及把缓冲区的数据写入硬盘中进程就结束了此时数据就丢失了为了能够确保数据确实被写入硬盘就应该在合适的时机使用flush方法手动刷新缓冲区因此上述的代码需要修改一下 try(OutputStream outputStreamnew FileOutputStream(d:/data.txt)) {     PrintWriter writernew PrintWriter(outputStream);     writer.println(hello);     writer.flush(); } catch (IOException e) {     throw new RuntimeException(e); } 示例  扫描指定目录并找到名称中包含指定字符的所有普通文件不包括目录并且后续询问用户是否要删除该文件 public static void main(String[] args) throws FileNotFoundException {Scanner scanner new Scanner(System.in);System.out.println(请输入搜索路径);String direcory scanner.next();File sourceFile new File(direcory);if (!sourceFile.isDirectory()) {System.out.println(搜索路径有误);return;}System.out.println(请输入要删除文件的关键词);String wordscanner.next();scanDir(sourceFile,word);}public static void scanDir(File rootPath, String word){File[] files rootPath.listFiles();if(filesnull)return;for (File file : files) {System.out.println(当前扫描的文件 file.getAbsolutePath());if (file.isFile()) {checkDelete(file,word);} else {scanDir(file,word);}}}public static void checkDelete(File rootPath, String word){if(!rootPath.getName().contains(word)){//不必删除直接方法结束return ;}//需要删除Scanner scanner new Scanner(System.in);System.out.println(是否需要删除Y/N:);String choicescanner.next();if(choice.equals(Y)||choice.equals(N)){rootPath.delete();System.out.println(删除完毕);}}
http://www.yingshimen.cn/news/27162/

相关文章:

  • 软件开发和网站开发哪个好学校网站asp源码
  • 唯品会一个专做特卖的网站广告世界重大新闻
  • 深圳南山企业网站建设报价企业查询征信
  • phython 做的网站王野摩托车官方网站
  • 网站开发托管协议珠海网站建设推广公司
  • 网站建设 添加本地视频教程手机怎么制作网站教程步骤
  • 什么样的网站好优化地图网站抓取
  • dota2海涛做的网站学网页设计需要什么基础
  • 宁夏建设监理协会网站企业网站相关案例
  • 免费毕业设计网站建设长春网站排名方案
  • 郑州网站建设哪家便宜江门营销型网站建设
  • 常用网站推广方法电商跨境电商网站开发技术
  • 兰州网站优化服务广州网站设计公司兴田德润在哪儿
  • 南宁网站快速优建手机网站
  • 滨州北京网站建设价格低3g微网站是什么
  • 杭州市萧山区建设局网站中信建设有限责任公司待遇
  • 维力安网站建设公司抚顺您做煮火锅网站
  • 网站版权问题如何快速建设自适应网站
  • 学校网站开发分析报告古腾堡 主题 wordpress
  • 宣城网站开发网站备案回访问题
  • 深圳世展建设有限公司公司seo是什么
  • 海口网站建设策划陕西有色建设有限公司官方网站
  • 网站自身维护唐山诚达建设集团网站
  • 化工课设代做网站高德是外国公司吗?
  • 做邮箱网站php cms网站
  • 苏州seo专家教优化网站结构wordpress编辑我
  • 网站方案策划书18000字网站怎么建设的
  • 站长工具综合查询系统自己怎么建网站卖东西
  • 网页设计介绍北京网站网站设计知识准备
  • 做那个类型的网站赚钱沈阳网站设计推广