properties读写

properties读写方法网上很多,大多都是对的,这里稍微分下类。在写properties的时候,有些方法是只写了bin目录下的properties,有些是src和bin下都写了的,如果在src下写的话,在eclipse直接打开properties文件就能发现变动,比较直观吧。


wKiom1WoGgezTx2AAABEspzmtBE016.jpg

在src目录下执行写

package properties;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;

/**
 * properties file in the src and bin directory change
 */

public class FromSrc {

	private static Properties properties = new Properties();
	private static File f = new File("");

	public static void read() {

		try {
			FileInputStream fis = new FileInputStream(f.getAbsolutePath() + "/src/test.properties");
//			FileInputStream fis = new FileInputStream(System.getProperty("user.dir")+"/src/test.properties");
//			FileInputStream fis = new FileInputStream(new File(f.getAbsolutePath()+"/src/test.properties"));
			properties.load(fis);
			System.out.println(properties.getProperty("path"));
			fis.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public static void write(String newpath) {
		try {
			FileOutputStream fos = new FileOutputStream(f.getAbsolutePath()
					+ "/src/test.properties");
//			FileOutputStream fos = new FileOutputStream(System.getProperty("user.dir")+"/src/test.properties");
//			FileOutputStream fos = new FileOutputStream(new File(f.getAbsolutePath()+"/src/test.properties"));
			properties.setProperty("path", newpath);
			properties.store(fos, "");
			fos.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

//	 public static void main(String[] args) {
//		 FromSrc.read();
//		 FromSrc.write("123");
//		 FromSrc.read();
//	 }

}


在bin目录下执行写

package properties;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URI;
import java.util.Properties;

/**
 * properties file in the bin directory change
 */



public class FromBin {

	private static Properties properties = new Properties();

	/**
	 * there is no similar way to get a outputstream
	 */

	public static void read() {
		try {
			InputStream fis = FromBin.class.getResourceAsStream("../test.properties");
			properties.load(fis);
			System.out.println(properties.getProperty("path"));
			fis.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	/**
	 * there are similar ways to get a outputsream
	 */
	public static void read2() {

		try {
			URI uri = FromBin.class.getResource("../test.properties").toURI();
//			URI uri = ClassLoader.getSystemResource("test.properties").toURI();
//			URI uri = FromBin.class.getClassLoader().getResource("test.properties").toURI();
//			URI uri = Thread.currentThread().getContextClassLoader().getResource("test.properties").toURI();

			InputStream in = new FileInputStream(new File(uri));
			properties.load(in);
			System.out.println(properties.getProperty("path"));

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public static void write(String newpath) {

		try {
			URI uri = FromBin.class.getResource("../test.properties").toURI();
//			URI uri = ClassLoader.getSystemResource("test.properties").toURI();
//			URI uri = FromBin.class.getClassLoader().getResource("test.properties").toURI();
//			URI uri = Thread.currentThread().getContextClassLoader().getResource("test.properties").toURI();

			FileOutputStream fos = new FileOutputStream(new File(uri));
			properties.setProperty("path", newpath);
			properties.store(fos, "");
			fos.close();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

//	 public static void main(String[] args) {
//		 FromBin.read();
//		 FromBin.read2();
//		 FromBin.write("55");
//		 FromBin.read();
//		 FromBin.read2();
//	 }

}


随便来个Main做测试

package properties;


public class Main {

	public static void main(String[] args) {
		/*
		 * from src
		 */
		FromSrc.read();
		FromSrc.write("qq");
		FromSrc.read();
		
//		FromBin.read();
//		FromBin.read2();
//		FromBin.write("666");
//		FromBin.read();
//		FromBin.read2();

	}

}


参考资料:

http://www.cnblogs.com/xiziyin/archive/2009/12/10/1620745.html

http://blog.csdn.net/shendl/article/details/1427475

http://blog.csdn.net/senton/article/details/4083127


你可能感兴趣的:(properties)