Java文件操作
Java中的文件操作是基于File类的,Java中的File类可以表示一个文件,也可以表示一个目录。 我们可以使用这个对象来修改文件或目录的属性:例如:文件的名称、修改日期等。
File类的作用是获取路径对应的对象(文件或文件夹)。 它不能直接读写文件,只能修改文件的属性。
File file = new File(“文件路径”);//获取对应路径位置的文件对象
注意:文件路径问题:需要注意的是linux和路径格式不同。 在linux下,“/”作为路径分隔符,而“\”作为路径分隔符(“\”在JAVA中被认为是转义字符,所以需要写两个)。 虽然JAVA具有“一次编译,到处运行”的特点,但代码编写也需要考虑不同的系统平台。
文件类操作
创造:
文档:
file.();//存在,如果存在不存在的一级路径,则会报错,返回false。 成功时返回 true。
文件夹:
file.mkdir();//只创建一级目录,但需要保证父目录存在。 如果路径为/test1/test2,则只会创建test2级别的路径,并返回true。 如果test1级别不存在,则不报错,但返回false;
file.();//创建目录和子目录,true表示成功,false表示失败。
文件和文件夹相关方法
权限相关:
canX():获取是否允许
setX():设置是否允许
阅读,维尔特,。 代表对文件的三种权限:读、写、执行。
//是否允许读取
Boolean file.canRead();
//是否允许写入
Boolean file.canWrite();
//是否允许执行
Boolean file.canExecute();
//设置是否允许读取
file.setReadable(Boolean isAllow);
//设置是否允许写入
file.setWritable(Boolean isAllow);
//设置是否允许执行
file.setExecutable(Boolean isAllow);
注意:设置可能会失败,因为程序运行时默认运行在当前用户下。 如果您的账户没有该文件夹的设置权限,则无法进行调整。
相关资料:
判断文件是否存在,存在则返回true,不存在则返回false:
f1.();
获取当前文件或文件夹的名称:
f1.();
获取当前文件或文件夹的路径:
f1.();
获取当前文件或文件夹的绝对路径:
f1.();
当前对象是目录吗:
f1.();
当前对象大小,文件显示其大小,文件夹显示0:
f1.();
文件输入和输出
File类的操作只涉及文件表层属性和权限的调整。 如果要访问内部数据,就需要使用输入流和输出流。 输入和输出流有两种格式。 一种是字节流,以字节为单位读取。 拿; 另一种是字符流,以char形式读取。
文件字节输入输出流
文件的输入和输出流是用于操作文件的,而不是用于目录的。
文件字节输入流
文件字节输入流: . 负责读取文件信息。
//首先创建文件对象
File file = new File("文件路径");
//创建文件输入流对象
FileInputStream inputstream;
try{
inputstream = new FileInputStream(file);//定义对象
//定义字节数组获取数据,这个字节数组长度为5,
byte[] bytes = new byte[5];
//定义长度用于获取当前读取长度
int len;
//循环读取,len代表当前实际读取到的长度,bytes代表当前读取到的内容
//需要注意的是:byte数组长度是固定的,所以开辟的空间是固定的,存在情况byte数组无法获取满,所以在处理byte数组时要加上len,根据len的长度去调整。
while((len = inputstream.read(bytes)) != -1){
//假如文件中都是字符串
//将byte数组转换为字符串,
//第一个参数为byte数组
//第二个参数为起始位置
//第三个参数为长度
String str = new String(bytes, 0, len);
}
}catch(IOException e){
}finally{
//如果字节流不再使用,一定要记得关闭
if(inputstream != null){
inputstream.close();
}
}
文件字节输出流
文件字节输出流: . 负责将信息写入文件。
//首先创建文件对象
File file = new File("文件路径");
FileOutputStream outputstream;//定义文件输出流对象
try{
outputstream = new FileOutputStream(file);
//将数据写入到outputstream
outputstream.write(byte[] bytes);//将byte数组写入
}catch(IOException e){
}finally{
if(outputstream != null){
//如果输出流不为空,关闭输出流
outputstream.close();
}
}
文件字符输入输出流
文件的字符输入输出流意味着以字符为单位进行操作,对于二进制文件来说可能会出现乱码。
文件字符输入流
文件字符输入流: . 负责读取文件信息。
//首先创建文件对象
File file = new File("文件路径");
//创建文件输入流对象
FileReader reader;
try{
reader = new FileReader(file);//定义对象
//定义字符数组获取数据,这个字符数组长度为5,
char[] chars = new char[5];
//定义长度用于获取当前读取长度
int len;
//循环读取,len代表当前实际读取到的长度,chars代表当前读取到的内容
//需要注意的是:char数组长度是固定的,所以开辟的空间是固定的,存在情况char数组无法获取满,所以在处理char数组时要加上len,根据len的长度去调整。
while((len = reader.read(chars)) != -1){
//假如文件中都是字符串
//第一个参数为char数组
//第二个参数为起始位置
//第三个参数为长度
String str = new String(chars, 0, len);
}
}catch(IOException e){
}finally{
//如果字节流不再使用,一定要记得关闭
if(reader != null){
reader.close();
}
}
文件字符输出流
文件字符输出流: . 负责将信息写入文件。
//首先创建文件对象
File file = new File("文件路径");
FileWriter writer;//定义文件输出流对象
try{
writer = new FileWriter(file);
//将数据写入到outputstream
writer.write(char[] chars);//将byte数组写入
}catch(IOException e){
}finally{
if(writer != null){
//如果输出流不为空,关闭输出流
writer.close();
}
}