搜索
写经验 领红包

java文件操作详解(java文件怎么写)

导语:JAVA文件基本操作

java文件操作详解(java文件怎么写)

Java文件操作

Java中关于文件的操作都是基于File类的,Java中的File类可以表示一个文件或者一个目录。我们可以利用该对象来对文件或者目录进行书属性修改:例如:文件的名称,修改日期的日期等等。

File 类的目的是获取对应路径的对象(文件或文件夹),不能直接对文件进行读写操作,只能修改文件的属性。

File file = new File(“文件路径”);//获取对应路径位置的文件对象

注意:文件路径问题:需要注意的是linux和windows路径格式是不一样的,linux下使用 “/” 作为路径分隔,而windows下使用 “\”作为路径分隔(JAVA中将“\”认为是转义符,所以需要写两个)。虽然JAVA拥有“一次编译,到处运行”的特性,但是代码书写同样需要考虑不同的系统平台。

File类操作

创建:

文件:

boolean file.createNewFile();//存在IOException,如果有一级路径不存在就会报错,并且返回false。成功则返回true。

文件夹:

boolean file.mkdir();//只创建一级目录,但需要保证父目录存在。如路径为 /test1/test2 那么只会创建test2这一级路径且返回true。如过test1这一级不存在不会报错,但是会返回false;

file.mkdirs();//创建目录及子目录,成功为true,失败为false。

文件及文件夹相关方法

权限相关:

Boolean canX():获取是否允许

setX(Boolean):设置是否允许

Read、Wirte、Execute。代表文件的三种权限:读、写和执行。

//是否允许读取Boolean file.canRead();//是否允许写入Boolean file.canWrite();//是否允许执行Boolean file.canExecute();//设置是否允许读取file.setReadable(Boolean isAllow);//设置是否允许写入file.setWritable(Boolean isAllow);//设置是否允许执行file.setExecutable(Boolean isAllow);

注意:可能会设置失败,因为当程序运行时,默认是在当前用户下运行,如果你的账号没有文件夹的设置权限,那么是无法调整的。

信息相关:

判断文件是否存在,存在返回true,不存在返回false:

f1.exists();

获取当前文件或文件夹的名字:

f1.getName();

获取当前文件或文件夹的路径:

f1.getPath();

获取当前文件或文件夹的绝对路径:

f1.getAbsolutePath();

当前对象是目录吗:

f1.isDirectory();

当前对象大小,文件显示其大小,文件夹显示为0:

f1.length();

文件的输入与输出

File类的操作只涉及文件表层的属性与权限调整,如果想要访问其内部的数据,就需要用到输入输出流,输入输出流有两种格式,一种是字节流,以byte进行读取;另一种是字符流,以char进行读取。

文件字节输入输出流

文件的输入输出流是操作文件的,对目录无效。

文件字节输入流

文件字节输入流:FileInputStream。负责读取文件信息。

//首先创建文件对象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();    }}

文件字节输出流

文件字节输出流:FileOutputStream。负责将信息写入到文件中。

//首先创建文件对象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();    }}

文件字符输入输出流

文件的字符输入输出流是指操作时以字符为单位进行,对于二进制文件可能导致乱码。

文件字符输入流

文件字符输入流:FileReader。负责读取文件信息。

//首先创建文件对象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();    }}

文件字符输出流

文件字符输出流:FileWriter。负责将信息写入到文件中。

//首先创建文件对象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();      }}

本文内容由小鸣整理编辑!