概述:Java本地文件操作,涉及到文件/文件夹的创建,文件/文件夹属性的读取与设置,文件/文件夹的重命名,目录结构的遍历,以及文件内容的读取与写入。

File属于java.io.File。

---在Eclipse的大纲视图界面(Outline)中有绿色点的是用public修饰的方法,黄色代表protected方法,蓝色代表包方法,红色代表private方法。

---------------------------------------------------------------------------------------------------------------------------------------------

File类常用的方法:

构造方法:
File(String)
File(String,String)
File(File,String)
File(URI)
其他:
getName():String获取文件名
getParent():String获取上一级文件的路径
getParentFile():File返回父级文件
getPath():String获取文件的路径
isAbsolute():boolean判断是否为绝对路径
getAbsolutePath():String获取绝对路径
getAbsoluteFile():File获取绝对路径的File对象
toURL():URL转化为URL
toURI():URI转化为URI
canRead():boolean判断是否可读
canWrite():boolean判断是否可写
exists():boolean判断文件是否存在
isDirectory():boolean判断是否是一个文件夹
isFile():boolean判断是否是文件
isHidden():boolean判断文件是否隐藏
length():long得到文件的长度
createNewFile():boolean将File对象创建为一个真正的文件
delete():boolean删除文件
deleteOnExit():void当程序退出时删除文件
list():String[]列出文件(名称)
listFiles():File[]列出文件的列表
mkdir():boolean创建文件夹
mkdirs():boolean创建多级文件夹
renameTo(File):boolean将文件重命名
setReadOnly():boolean将文件设置为只读
setWritable(boolean):boolean将文件设置为可写
canExecute():boolean判断文件是否在当前操作系统中可执行
createTempFile(String,String,File):File创建临时文件
compareTo():int文件的对比

----------------------------------------------------------------------------------------------------------------------------------------

注意:File对象既可以指代一个文件,也可以指代一个文件夹,实际上File对象更像是表示文件或文件夹的路径。
   创建File对象时传入文件名称(带后缀名)如果没有指定路径的话,那么文件会默认为当前项目的根目录下。
   在填写File构造方法中参数的相对路径时,一定不要以"/"开头。
     ../代表上一级文件夹,也就是工程项目的上一级。../../代表上一级的上一级,两级向上跳转,“./”代表当前目录。

----------------------------------------------------------------------------------------------------------------------------------------

renameTo方法的效果更像是一种文件的移动,将文件移动到指定路径的同时进行文件名的变更,但是值得注意的是,

renameTo方法必须在同一分区中进行,比如windows系统中的不同盘区,跨盘区执行renameTo方法就是不允许的。而linux系统就不会收这个限制。

如果非要进行跨区的文件移动,就需要用拷贝的相关方法,而不是文件的重命名。

-------------------------------------------------------------------------------------------------------------------------------------------

在删除文件夹的时候,此文件夹必须是空文件夹,否则不能被删除。

---------------------------------------------------------------------------------------------------------

常用的文件属性读取:
File file = new File("test.txt");
//判断文件是否存在
file.exists()
//读取文件名称
file.getName()//这里注意:获取到的文件名一定是前面Java声明的file对象的名字
//读取文件路径
file.getPath()//相对路径
//读取文件绝对路径
file.getAbsolutePath()
//读取文件父级路径
new File(file.getAbsolutePath).getParent()//注意,因为file对象是通过
相对路径进行构造的,因此,在调用getParent()方法时会返回null,因此我们
需要获取到file的绝对路径之后,才可以获取到file的父级路径。
//读取文件大小
file.length()//返回值是long型的数值,是字节(byte)
//判断文件是否被隐藏。
file.isHidden()
//判断文件是否可读
file.canRead()
//判断文件是否可写
file.canWrite()
//判断是否为文件夹
file.isDirectory()

------------------------------------------------------------------------------------------------------------------------

package crc16test;import java.io.File;public class Scannner {public static void main(String[] args) {printFiles(new File("../crc-16"), 1);}/*** 文件打印* @param dir* @param tab 文件缩进*/public static void printFiles(File dir, int tab) {//这种打印方式,可以输出系统的隐藏文件if (dir.isDirectory()) {File next[] = dir.listFiles();for (int i = 0; i < next.length; i++) {for (int j = 0; j < tab; j++) {System.out.print("|--");}System.out.println(next[i].getName());if (next[i].isDirectory()) {printFiles(next[i], tab + 1);}}}}
}
输出结果:
|--.classpath
|--.project
|--.settings
|--|--org.eclipse.core.resources.prefs
|--|--org.eclipse.jdt.core.prefs
|--bin
|--|--crc16test
|--|--|--Converters.class
|--|--|--CRC.class
|--|--|--Crc16.class
|--|--|--HelloFile.class
|--|--|--MyOuter$MyInner.class
|--|--|--MyOuter.class
|--|--|--ReadAndWriteFile.class
|--|--|--room.html
|--|--|--Scannner.class
|--|--|--SetProperty.class
|--|--|--Solution.class
|--|--|--sss.txt
|--json.jar
|--newFile.txt
|--src
|--|--crc16test
|--|--|--Converters.java
|--|--|--CRC.java
|--|--|--Crc16.java
|--|--|--HelloFile.java
|--|--|--MyOuter.java
|--|--|--ReadAndWriteFile.java
|--|--|--room.html
|--|--|--Scannner.java
|--|--|--SetProperty.java
|--|--|--Solution.java
|--|--|--sss.txt
|--text.txt

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

package crc16test;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;public class ReadAndWriteFile {public static void main(String[] args) {File file = new File("text.txt");/* 文件的输入 */if (file.exists()) {System.err.println("exist");try {// 1.创建一个文件输入流FileInputStream fis = new FileInputStream(file);// 2.创建文件输入流的Reader/*** InputStreamReader有多个构造器,但是因为FileInputStream是字节输入流,* 而InputStreamReader是字符输入流,因此在调用构造器时,我们选择带有字符编码的* 构造器,否则会出现乱码。另外注意,文件默认为GBK编码,在创建文件的时候应当先设置好字符* 编码为UTF-8,这样好统一前后的编码。*/InputStreamReader isr = new InputStreamReader(fis, "UTF-8");// 3.创建一个带有缓冲的输入流BufferedReader br = new BufferedReader(isr);String line;while ((line = br.readLine()) != null) {System.out.println(line);}br.close();isr.close();fis.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}} else {System.err.println("THE FILE DOES NOT EXIST");}/* 文件的输出 *///文件的输出不必担心文件是否存在的问题,因为程序会自动进行文件的创建File newFile = new File("newFile.txt");try {FileOutputStream fos = new FileOutputStream(newFile);OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");BufferedWriter bw = new BufferedWriter(osw);// 注意,这种写入方式,是覆盖性的。bw.write("123\n");bw.write("456\n");bw.close();osw.close();fos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}System.out.println("写入完成。");}
}

输出结果:

exist
长恨歌
一二三四五六,一二三四五六。
六五四三二一,六五四三二一。
一二三四五六,一二三四五六。
六五四三二一,六五四三二一。
写入完成。

Java本地文件操作相关推荐

  1. HTML5 本地文件操作之FileSystemAPI整理(二)

    一.文件目录操作 1.DirectoryEntry对象 属性: 1.isFile: 操作对象的是否为文件,DirectoryEntry对象固定其值为false 2.isDirectory: 操作对象是 ...

  2. HTML5 本地文件操作之FileSystemAPI整理(一)

    一.请求配额 DeprecatedStorageInfo对象 window.webkitStorageInfo:当使用持久存储模式时需要用到该对象的接口 方法: 1.requestQuota(type ...

  3. java中文件,java中文件操作大全

    java中文件操作大全 一.获得控制台用户输入的信息 view plaincopy to clipboardprint? / //获得控制台用户输入的信息 return throws ioexcept ...

  4. iOS客户端开启FTP,其他设备访问手机本地文件操作实现

    iOS客户端开启FTP,其他设备访问手机本地文件操作实现 因为项目需要,需要在手机端搭建FTP服务,让其他设备来访问手机某个路径文件夹下边的文件,实现下载功能. 主要实现借助第三方库XMFTPServ ...

  5. java中文件操作的工具类

    代码: package com.lky.pojo;import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...

  6. java io文件操作_java IO 文件操作方法总结

    java IO 文件操作方法总结 对于输入输出的理解: 输入输出,以程序为参考点,外部数据进入程序,通过输入流完成.程序将数据给外部设备,通过输出流完成. 文件Io的操作 //获取文件 File fi ...

  7. java底层 文件操作_JAVA的文件操作【转】

    11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...

  8. java api教程_Java api 入门教程 之 JAVA的文件操作

    I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程的一个基本 ...

  9. java底层 文件操作,java底层是怎的对文件操作的

    一.序言 IO操作,才程序中比较普遍,JAVA 中提出了IO/NIO 的概念,也一直在说NIO 比IO快,一直不知道原因,就想memcache 和ehcache 比较优劣一样,这些东西得自己看看如何实 ...

最新文章

  1. 微电网日前优化调度 。算例有代码(0)
  2. Vijos P1696 数与连分数【连分数】
  3. React 新特性 Hooks 讲解及实例(四)
  4. Android应用程序变量
  5. python手势识别隐马尔可夫模型_使用隐马尔可夫模型的运动笔迹手势识别.doc
  6. SpringCloud Eureka参数配置项详解
  7. [Java] 蓝桥杯ADV-155 算法提高 上帝造题五分钟
  8. 交换机的VLAN与Trunk配置
  9. 电脑硬盘数据不小心格式化后,恢复数据的方法介绍
  10. c#编写高程拟合程序
  11. SQL进阶教程PDF下载
  12. 数据可视化之美-动态图绘制【补充】(以Python为工具)
  13. web错误代码ERR_BLOCKED_BY_RESPONSE
  14. 使用vivado调用自定义IP的两种方法
  15. CSS层叠样式表基础知识整理
  16. 骑行318、 2016.7.29
  17. 选择手机中的一张照片或拍照上传图片(超高清晰度)
  18. 螺钉分类及表面处理种类
  19. google官方mvp+dagger2架构详解
  20. 腾讯游戏安全年度报告出炉:外挂样本持续增长,隐晦作弊现象丛生、游戏黑产资产惊人

热门文章

  1. Winform实现漂亮动画-小火车
  2. 网络编程C/S模型怎样才能实现真正的聊天功能
  3. 对一道基础string题及其变式题的思考与解析
  4. oracle9i 恢复数据库,Oracle9i RMAN备份及恢复步骤(zt)
  5. apache支持mysql ubuntu_Ubuntu+Apache+PHP+Mysql环境搭建(完整版)
  6. r语言的MASS包干什么的_R语言综述的包
  7. python求123逆序数_应用Python来计算排列中的逆序数个数
  8. pyqt安装_Win10下安装LabelImg以及使用(绝对是全网最简单的教程)
  9. c语言选择结构程序设计笔记,C语言选择结构程序设计.ppt
  10. 我xp电脑桌面没有计算机图标不见了,xp系统我的电脑图标不见了怎么办|如何找回我的电脑图标-系统城...