以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
public File(String parent,String child) 以parent为父路径,child为子路径创建File对象。 File的静态属性String separator存储了当前系统的路径分隔符。在UNIX中,此字段为‘/’,在Windows中,为‘\\’访问文件名:
getName():获取文件名getPath():获取路径getAbsoluteFile():绝对文件名getAbsolutePath():绝对文件路径getParent():上一层目录renameTo(FilenewName):重命名,注意括号内的文件一定不存在,重命名的文件必须存在 File file1 = new File("d:/io/helloworld.txt"); System.out.println(file1.getName()); System.out.println(file1.getPath()); System.out.println(file1.getAbsoluteFile()); System.out.println(file1.getParent()); System.out.println(file1.getAbsolutePath());文件检测:
exists():是否存在canWrite():是否可以写入内容canRead():是否可读isFile():是不是文件isDirectory():是不是文件目录 获取常规文件信息 lastModified():最后的修改时间 length() File file1 = new File("d:/io/helloworld.txt"); System.out.println(file1.exists()); System.out.println(file1.canWrite()); System.out.println(file1.canRead()); System.out.println(file1.isFile()); System.out.println(file1.isDirectory()); System.out.println(new Date(file1.lastModified())); //转成当前的时间 System.out.println(file1.length());文件操作相关
createNewFile():创建新的文件delete():删除文件 File file1 = new File("d:/io/helloworld.txt"); System.out.println(file1.delete()); if(!file1.exists()){ boolean b = file1.createNewFile(); System.out.println(b); } File file2 = new File("d:\\io1\\io2"); if(!file2.exists()){ boolean b = file2.mkdirs(); System.out.println(b); } 目录操作相关 mkDir():创建一个文件目录。只有在上层文件目录存在的情况下才返回truemkDirs():创建一个文件目录。若上层文件目录不存在,一并创建list():以string型的数组列出来的,只读出文件名listFiles(): File file3 = new File("d:\\teach"); String[] strs = file3.list(); for(int i = 0;i < strs.length;i++){ System.out.println(strs[i]); } System.out.println(); File[] files = file3.listFiles(); for(int i = 0;i < files.length;i++){ System.out.println(files[i].getName()); } File dir1 = new File("D:/IOTest/dir1"); if (!dir1.exists()) { // 如果D:/IOTest/dir1不存在,就创建为目录 dir1.mkdir(); } // 创建以dir1为父目录,名为"dir2"的File对象 File dir2 = new File(dir1, "dir2"); if (!dir2.exists()) { // 如果还不存在,就创建为目录 dir2.mkdirs(); } File dir4 = new File(dir1, "dir3/dir4"); if (!dir4.exists()) { dir4.mkdirs(); } // 创建以dir2为父目录,名为"test.txt"的File对象 File file= new File(dir2, "test.txt"); if (!file.exists()) { // 如果还不存在,就创建为文件 file.createNewFile(); } IO流分类: 按流向分: 输入流 输出流 按处理的单位: 字节流(8 位的字节) 字符流(16 位的字节) 按流的角色 : 节点流:可以从一个特定的 IO 设备读/写数据的流 处理流:对一个已存在的流进行连接和封装,通过封装后的流来实现数据读/写操作 2.java IO原理: IO流用来处理设备之间的数据传输。java程序中,对于数据的输入/输出操作以“流(stream)”的方式进行;java.io包下提供了各种"流"类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。 输入input:读取外部数据(磁盘等存储设备的数据)到程序(内存)中; 输出output:将程序数据输出到磁盘等存储设备中; 3.流的分类: 按操作数据单位不同分为:字节流(8 bit),字符流(16 bit) 按数据流的流向不同分为:输入流,输出流按流的角色的不同分为:节点流,处理流(加速节点流的传输) 字节流:以byte为单位传输; 字符流:以char为单位传输; 节点流:直接作用在文件上的,可以从一个特定的数据源读写数据; 处理流:(加速节点流的传输)“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。 注意:使用 FileReader FileWriter可以实现文本文件的复制。对于非文本文件(图像,音频)只能使用字节流 节点流:(输入)FileInputStream、FileReader (输出) FileOutputStream、FileWriter 缓冲流:(输入流):BufferedInputStream、BufferedReader (输出流):BufferedOutputStream、BufferedWriter (抽象基类) 字节流 字符流 输入流 InputStream Reader 输出流 OutputStream Writer java.io.Reader和java.io.InputStream组成了java输入类,Reader用于读入16位字符,也就是Unicode编码的字符; 而InputStream用于读入ASC||字符和二进制数据。 reader支持16位的UNicode字符输出,inputstream支持8位的字符输入;转载于:https://www.cnblogs.com/gmj0113/p/5665625.html