【java基础】文件属性、创建、读、写

文件属性、方法、创建、读、写

  • File类
    • File类文件的常用属性和方法
    • 创建文件
  • commons-io .FileReader类
    • 读文件
  • commons-io .FileWriter类
    • 写文件
  • commons-io .FileUtils类==常用==
  • commons-io .FilenameUtils类==常用==
  • ini文件的创建、读、写==常用==
  • properties文件的创建、读、写==常用==

File类

只用来处理文件属性,没有读写的操作

File类文件的常用属性和方法

属性 描述
CanWrite() 返回文件是否可写
CanRead() 返回文件是否可读
IsDirectory() 判断该路径指示的是否是文件夹
IsFile() 判断该路径指示的是否是文件
LastModified() 返回文件的最后修改时间标志
Mkdirs() 生成指定的目录,如果当前路径中包含的父目录不存在时,也会自动根据需要创建
SetReadOnly() 将文件设置为可读
createNewFile() 创建指定的文件,不能用于创建文件夹,且文件路径中包含的文件夹必须存在
delete() 删除当前文件或文件夹
exists() 判断文件夹或文件是否存在
getAbsolutePath() 获得当前文件或文件夹的绝对路径
getName() 获得当前文件或文件夹的名称
getParent() 获得当前路径中的父路径
list() 返回当前文件夹下所有的文件名和文件夹名称
RenameTo(File dest) 更名文件

创建文件

由于File类的createNewFile()方法有throws IOException,所以要加上try语句处理异常

try {
File f=new File("D:\\test.txt");
f.createNewFile();
}catch (Exception e){
            System.out.println("程序遇到异常:"+e.toString());
        }
}

commons-io .FileReader类

读文件

//File.separator代表的是任意的\或/,
try {
            int ch;
            FileReader f=new FileReader("d:"+File.separator+"test.txt");
            while ((ch=f.read())!= -1){  //逐个读取文件中的内容,如果为-1则表示没有内容了,.read()的返回值是一个整数对应ASCII与Unicode字符表,需要转换成char格式,才是显示文件中的内容。
                System.out.print((char) ch);
                f.close();//关闭文件
            }

        }catch (Exception e){
            System.out.println("程序遇到异常:"+e.toString());
        }

commons-io .FileWriter类

写文件

FileWriter f=new FileWriter("d:"+File.separator+"test.txt",true);//加上true,每次运行程序,文件中的内容是追加写入。
FileWriter f=new FileWriter("d:"+File.separator+"test.html");//不加true,每次运行程序,文件中的内容是覆盖写入。
f.write("***\r\n");
f.write("testwrite\r\n");
f.write("***\r\n");
f.close();//关闭文件

commons-io .FileUtils类常用

try {
            FileUtils.touch(new File("d:\\test1.txt"));//创建文件
            FileUtils.copyFile(new File("d:\\test1.txt"),new File("d:\\test2.txt"));//在本级目录复制文件
            FileUtils.copyFileToDirectory(new File("d:\\test1.txt"),new File("d:\\logs\\copy"));//复制文件到新目录

            FileUtils.moveFileToDirectory(new File("d:\\test1.txt"),new File("d:\\logs\\move"),true);//移动文件到新目录
            FileUtils.write(new File("d://test2.txt"),"测试","utf-8", Boolean.parseBoolean("true"));//写文件
            FileUtils.deleteQuietly(new File("d:\\test1.txt"));//删除文件

//遍历文件和子文件夹,{}中填写遍历文件的类型
		Collection listFiles=FileUtils.listFiles(new File("d:\\log"),new String[]{"txt","java"},true);
		for(File file :listFiles){ 
			System.out.println(file.getAbsolutePath());//打印文件所在路径
			}
        }catch (Exception e){
            System.out.println("程序遇到异常:"+e.toString());
        }
//读取文本,返回字符串。
        //FileUtils.readFileToString()指定文件进行读取返回字符串。
        String s = FileUtils.readFileToString(new File("D:\\test1.txt"));
        System.out.println(s);

commons-io .FilenameUtils类常用

//判断文件名的后缀。
        //isExtension(String fileName,String ext):判断fileName是否是ext后缀名;
        boolean b = FilenameUtils.isExtension("ja.txt","rar");
        System.out.println(b);
//getname 获取文件名。
        String name = FilenameUtils.getName("D:\\ja.txt");
        System.out.println(name);
//FilenameUtils方法 获得拓展名,
        //需要加上后缀名,才能获得后缀名。
        //getExtension 获取文件名后缀。
        String n = FilenameUtils.getExtension("d:\\ll.txt");
        System.out.println(n);

ini文件的创建、读、写常用

//创建文件
private String fileName = null;
HierarchicalINIConfiguration ini =null;

public void createLog(String p_fileName) {
		// TODO Auto-generated method stub
		this.fileName = p_fileName;
		File file = new File(this.fileName);
		if (!file.exists()) //如果文件不存在
		{
			try {
				file.createNewFile(); //创建文件
				
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		try {
			ini = new HierarchicalINIConfiguration(this.fileName);
			ini.load(new File(this.fileName));		
		} catch (ConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		 	
	}
//写文件
public  void write(String section, String key, String value) 
	{  
		ini.setProperty(section+"."+key, value);
	}
//读文件	 
public String read(String section, String key)
	 {	
	  	 return ini.getString(section+"."+key);
	 }
//关闭文件 
public void closeLog() {
		// TODO Auto-generated method stub
		try {
			ini.save();
		} catch (ConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		this.fileName=null;
		this.ini=null;	
}
public static void main(String[] args) {
		// TODO Auto-generated method stub
		IniFile ini=new IniFile();
		ini.createLog("d://config2.ini");
		ini.write("URL", "url","www.163.com");
		System.out.println(ini.read("URL", "url"));
		ini.closeLog();
	}

properties文件的创建、读、写常用

      File file;
	  String filePath=null;
	  PropertiesConfiguration config = new PropertiesConfiguration();
//创建文件	  
	  public void createLog(String p_filePath){
		  this.filePath=p_filePath;
		  file = new File(this.filePath);
			if (!file.exists())
			{
				try {
					file.createNewFile(); //创建文件的意思
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			} 			
			try {
				config.load(new File(this.filePath)); //导入需要的properties文件
			} catch (ConfigurationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	  }
//读文件	  
	  public String read(String p_key){   
		   // String value=config.getProperty(p_key).toString();//因为config.getProperty(p_key) 的返回值是Object类型,而方法的放回值是String,所以通过toString()把object类型转变成String类型
		    Object value=config.getProperty(p_key);
		  	return value.toString();
  }
  //写文件
	  public void write (String p_key, String p_value)  { 
		  	config.setProperty(p_key, p_value);  
//	  try {
//		    config.save(new File(this.filePath));
//	       } catch (ConfigurationException e) {
//		// TODO Auto-generated catch block
//		         e.printStackTrace();
//	        }
	  }

public static void main(String[] args) {
		PropertiesFile pf= new PropertiesFile();
		pf.createLog("d://config2.properties");
		pf.write("url", "www.163.com");
		pf.write("user", "kevin");
		System.out.println(pf.read("url"));
		System.out.println(pf.read("user"));
		pf.closeLog();
	}

你可能感兴趣的:(java)