io操作占用cpu资源吗,io操作为什么会阻塞线程

  io操作占用cpu资源吗,io操作为什么会阻塞线程

  操作一、IO流技术Stream stream是一个抽象的概念,表示数据的非结构化传输。I/O作为流执行,数据被视为非结构化的字节顺序或字符序列。从流中获取数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用于输入和输出操作的流称为IO流。换句话说,IO流是以流的方式输入和输出(读写)的。

  流是一组有序的字节,有一个起点和一个终点,是数据传输的总称或抽象。即两个设备之间的数据传输称为流,流的本质是数据传输。根据数据传输的特点,将流抽象成各种类,便于更直观的数据操作。

  二、文件类在java中,我们通过java.io.File类操作文件的基本属性,包括文件属性读取、文件创建、文件删除、文件添加等等。File是一个类,所以使用的时候需要创建一个对象,但是File类的实例是不可变的。也就是说,一旦创建,File对象所代表的抽象路径名就永远不会改变。也就是说,File类的对象是用构造方法构造的,指定路径名,文件名等。然后可以通过调用对象的createNewFile()方法来创建相应的文档。

  File类的对象可以表示特定的文件路径。在实际应用中,可以使用绝对路径或相对路径。以下是创建file对象的示例。

  示例:导入Java . io . file;

  公共类FileTestDemo {

  公共静态void main(String[] args) {

  String path= dat

  File file=新文件(路径);

  system . out . println(file . mkdir());//在当前项目的根目录下建立dat目录

  //.isDirectory()确定文件对象是否为目录,如果不存在则返回false,如果作为文件存在则返回false。

  system . out . println(file . is directory());

  //创建D:/ABC AAA/用户/商店/图片/

  File ds=new File( d:/abcxaa/user/shop/images/);

  如果(!ds.exists()){

  ds . mkdirs();

  }

  }

  }三。文件的操作(输出路径、名称、基本名称、扩展名、删除、修改、读取和建立)导入Java . io . file;

  公共类文件3 {

  公共静态void main(String[] args) {

  File file=新文件( c . txt );

  system . out . println(file . is file());//是文件吗//真

  system . out . println(file . length());//文件的长度//190

  system . out . println(file . exists());//是否存在//真

  System.out.printf(%tF % tT%n ,file . last modified());//2022-09-21 20:18:28

  system . out . println(file . getname());//c.txt //获取文件名

  system . out . println(file . getpath());//c.txt //文件路径

  system . out . println(file . getabsolutepath());//d:\ idea project \ project \ c.txt//The文件的绝对路径

  //文件目录

  string t=file . getabsolutepath();

  system . out . println(t . substring(0,t . lastindexof( \ )));//D:\idea project\project

  //文件基本名称

  system . out . println(t . substring(t.lastIndexOf( \ )1,t . lastindexof( . )));//c

  //文件扩展名

  system . out . println(t . substring(t . lastindexof( . )));//.文本文件(textfile)

  //将文件名更改为uuuuu.txt

  file.renameTo(新文件( uuuuu . txt ));

  //将文件位置更改为d:/ABC,并将文件名修改为xyz.txt

  File ff=新文件( uuuuu . txt );

  ff.renameTo(新文件( d:/ABC/XYZ . txt ));

  //删除文件

  File f3=新文件( d:/ABC/XYZ . txt );

  //如果xyz是文件并且存在

  if(f3.isFile() f3.exists()){

  //删除

  F3 . delete();

  }

  }

  }

  导入Java . io . *;

  公共类文件2 {

  公共静态void main(String[] args)引发异常{

  //读取文本文件

  //字节流

  File file=新文件( c . txt );

  file inputstream fis=new file inputstream(file);

  System.out.println(新字符串(fis . readall bytes()));

  //字符流

  FileReader reader=new FileReader(file);

  buffered reader br=new buffered reader(reader);

  while (br.ready()){

  system . out . println(br . readline());

  }

  }

  }

  导入Java . io . file;

  导入Java . io . file output stream;

  导入Java . io . filewriter;

  导入Java . io . printwriter;

  公共类文件1 {

  公共静态void main(String[] args)引发异常{

  //创建一个空文件

  File f1=新文件( a . txt );

  f1。创建新文件();

  //建立文件并写入内容

  PrintWriter out=new PrintWriter( b . txt );

  out.write(你好中文\ n’);

  out.printf(%tF % tF%n ,system。当前时间毫秒());

  出去。flush();

  //字节流写入文件

  文件输出流fos=新文件输出流( c . txt ,true);

  for(int I=0;i i ) {

  fos.write(87 -你好文件\r\n .getBytes());

  }

  福斯。close();

  //字符流

  FileWriter fw=new FileWriter( d . txt );

  fw.write(您好程序设计);

  fw。close();

  }

  }四、目录操作(建立目录删除目录删除非空目录遍历目录)导入Java。io。文件;

  公共类文件测试演示{

  公共静态void main(String[] args) {

  字符串路径= dat

  文件文件=新文件(路径);

  系统。出去。println(文件。mkdir());//在当前项目的根目录建立数字式录音带(数字音频tape)DOS文件名数据文件目录

  //.isDirectory()判断文件对象是不是目录,如果不存在返回假的,如果存在是文件,返回错误的

  系统。出去。println(文件。是directory());

  //在d盘下建立d:/abcxaa/user/shop/images/

  File ds=new File( d:/abcxaa/user/shop/images/);

  如果(!ds.exists()){

  ds。mkdirs();

  }

  }

  }

  导入Java。io。文件;

  导入Java。util。数组;

  公共类文件测试演示2 {

  公共静态void main(String[] args) {

  文件目录=新文件( d:/ABC );

  系统。出去。println(目录exists());//判断字母表是否存在//真

  系统。出去。println(目录是directory());//判断是不是目录//真

  //方法一

  string[]ds=目录。list();

  对于(字符串d : ds) {

  系统。出去。println(d);

  }//遍历目录字母表中的文件

  //.饭桶gitignore .理念集合型。txt出项目8.25。IML src

  //方法二

  file[]fs=dir。列出文件();

  对于(文件f : fs) {

  系统。出去。println(f . getname()(f . is file()?文件:目录));

  //.饭桶目录。被增加文件。想法目录jihefanxing.txt文件在外目录项目8.25.iml文件科学研究委员会目录

  }

  系统。出去。println(-);

  String[] ds2=dir.list((a,b)-true);

  //(a,b)-返回布尔值a代表目录目录b代表目录中的子元素的名称字符串

  系统。出去。println(数组。tostring(ds2));

  //真返回[.git,100 .gitignore,1000 .idea,jihefanxing.txt,out,project8.25.iml,src]

  //flase返回[]为空

  系统。出去。println(-);

  String[] ds3=dir.list((a,b)- b.endsWith( .txt’));

  //搜索以.结尾的文件

  系统。出去。println(数组。tostring(ds3));

  //[gyfyajshd.txt,jihefanxing.txt,sfadhjgas.txt]

  对于(字符串s:ds3){

  系统。出去。println(s);

  }//gyfyajshd。txt jihefanxing。txt sfadhjgas。文本文件(textfile)

  系统。出去。println(-);

  file[]fs2=dir。列出文件(f f . is file()f . getname().endsWith(.Java’));

  对于(文件f:fs2){

  系统。出去。println(f . getname());

  }

  }

  }

  导入Java。io。文件;

  公共类文件测试演示3 {

  公共静态void main(String[] args) {

  string dst= d:/ABC ;

  文件f=新文件(dst);

  德尔(新文件( d:\ \ ABC );

  //if(f . exists()f . is directory()){

  ////此方法只能删除空目录,不能删除有东西的目录

  //系统。出去。println(f . delete());

  //}

  }

  公共静态void del(文件目录){

  if(dir.isDirectory()){

  文件[]文件=目录。列出文件();

  对于(文件女:文件){

  if(f.isDirectory()) {

  德尔(女);

  }

  f。delete();

  }

  }

  导演。delete();

  }

  }

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: