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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。