前言:
目前各位老铁们对“java 类路径 中文”大体比较关注,大家都想要学习一些“java 类路径 中文”的相关资讯。那么小编也在网络上收集了一些有关“java 类路径 中文””的相关内容,希望小伙伴们能喜欢,同学们一起来了解一下吧!/**
* 初识IO流
* 输入流input/reader,数据从数据源到程序。输出流output/writer,数据从程序到目的地。输入输出是相对程序而言
* 字节流stream结尾,以字节为单位获取数据。字符流reader/writer结尾,以字符为单位获取数据,字符char为2字节unicode
* 节点流,直接从数据源或目的地读写数据的流。处理流/包装流,不直接连接数据源/目的地,对流进行处理/包装的流
*/
public class firstIO {
//使用FileInputStream和FileOutputStream进行文件读写操作
//类结尾Stream代表字节流,input代表输入流,output代表输出流,file代表操作对象为文件,即以字节为单位对文件进行访问的流,直接连接文件/数据源所以是节点流
public static void main(String[] args) {
String path = firstIO.class.getClassLoader().getResource("").getPath()+"testIO.txt";
System.out.println(path);
//路径为"/C:/Users/86158/IdeaProjects/projectDIVA/out/production/iostream/testIO.txt"
//.getResource()得到的是编译后的class文件所在位置的路径,在out目录下而非当前正在编写的java文件所在路径
try (FileOutputStream fos = new FileOutputStream(path)){
//try-with-resource包裹io操作
fos.write(97);
//传入int类型,转化为字节存储,当通过文本的方式读取时才会转换显示为字符
fos.write(100);
fos.write(103);
//Stream字节流是以字节为单位,存取的字符只能为0-255即对应ASCII码
fos.write(355);
//当超过byte范围会溢出,355-256=99对应字符c
//作为文本文件打开时内容为“adgc”
}catch (Exception e){
//catch处理异常
e.printStackTrace();
}
try(FileInputStream fis = new FileInputStream(path)){
for (int i = fis.read();i!=-1;i = fis.read()){
//FileInputStream类的.read()为向后读取一个字节/8位二进制数,读到字节时会返回十进制数值,返回值类型为int,作为文本读取需要(char)手动转换为字符,当文件读完、向后读不到字节时返回-1
System.out.print((char) i);
//文件中的换行符也会被读取到,所以不需要println换行
//结果为adgc
}
}catch (Exception e){
e.printStackTrace();
}
File f = new File("iostream/testFile.txt");
//File文件类 将文件/目录转换为对象的包装类,对文件/目录包装之后可以调用File类内的方法
//创建File对象需要指定绝对路径或相对路径 new File("")默认生成当前项目目录下的路径
System.out.println(f.getName());
//.getName()只返回文件名,不包含路径 结果为testFile.txt
System.out.println(f.getPath());
//.getPath()返回创建File对象时传入的路径,如果创建时传入的是绝对路径则返回绝对路径,如果传入的是相对路径则返回相对路径 结果为iostream\testFile.txt
System.out.println(f.getAbsolutePath());
//.getAbsolutePath()返回绝对路径 结果为C:\Users\86158\IdeaProjects\projectDIVA\iostream\testFile.txt
System.out.println(f.exists());
//查询文件/目录f是否存在,结果为false
try {
System.out.println(f.createNewFile());
//.createNewFile()创建新文件(非目录),如果路径中某级不存在或者已存在同名文件或目录(含后缀的目录)则创建失败返回false,创建成功返回true
} catch (IOException e) {
throw new RuntimeException(e);
}
System.out.println(f.delete());
//删除文件f,如果不存在则返回false,这里删除只会删除testFile.txt文件,目录树C:\Users\86158\IdeaProjects\projectDIVA\iostream不会删除,因为目录iostream是File("C:\Users\86158\IdeaProjects\projectDIVA\iostream")而不是C:\Users\86158\IdeaProjects\projectDIVA\iostream\testFile.txt
System.out.println(f.isFile());
//查询f是否为文件,当没有同名文件或者f为目录时返回false
System.out.println(f.length());
//返回文件的字节数,即文件大小,结果为0,f为空文件
System.out.println(f.isHidden());
//判断文件f是否为隐藏文件,hidden隐藏的,结果为false
System.out.println(f.isDirectory());
//查询f是否为目录,不存在或f为文件时返回false,结果为false
System.out.println(f.mkdir());
//创建目录f,当路径中某级不存在或者f为文件或者目录f已存在时返回false,结果为false
System.out.println(f.mkdirs());
//创建目录树f,当路径中某级不存在时创建这些中间路径,f为文件或者已存在目录f时返回false,结果为false
File f2 = f.getParentFile();
//.getParentFile()返回上一级目录的File对象
System.out.println(f2.getPath());
//结果为iostream,因为f使用相对路径创建,所以f2也为相对路径创建
System.out.println(f.getParent());
//.getParent()返回上一级的路径字符串,结果为iostream和f2.getPath()相同
String[] fileList = f2.list();
//.list()返回目录f2下的所有文件名
System.out.println(Arrays.toString(fileList));
//结果为[iostream.iml, src, testFile.txt],返回文件名不包含路径
File[] files = f2.listFiles();
//.listFiles()返回目录f2下的所有文件的File对象
System.out.println(Arrays.toString(files));
//结果为[iostream\iostream.iml, iostream\src, iostream\testFile.txt],直接打印File对象时.toString返回.getPath()
}
}
标签: #java 类路径 中文 #new file 相对路径