在JAVA里可用properties文件// con.porperties文件和程序在一个目录下
username = admin
password = gold//程序文件
import java.io.*;
import java.util.Properties;
class TestProperties {
public static void main(String[] args) {
Properties prop = new Properties();
String path = ".\\con.properties";
try {
InputStream is = new FileInputStream(path);
prop.load(is);
} catch (Exception e) {
System.out.println(e.getMessage());
}
String userName = prop.getProperty("username");
String password = prop.getProperty("password");
System.out.println(userName+" "+password);
}
}
username = admin
password = gold//程序文件
import java.io.*;
import java.util.Properties;
class TestProperties {
public static void main(String[] args) {
Properties prop = new Properties();
String path = ".\\con.properties";
try {
InputStream is = new FileInputStream(path);
prop.load(is);
} catch (Exception e) {
System.out.println(e.getMessage());
}
String userName = prop.getProperty("username");
String password = prop.getProperty("password");
System.out.println(userName+" "+password);
}
}
Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行
一次分析,归类,理清不同方法之间的异同点。一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的。
InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在
OutputStream 中我们有 FileOutputStream 这个对象。用FileInputStream 来读取数据的常用方法是:
FileInputStream fstream = new FileInputStream(args[0]);
DataInputStream in = new DataInputStream(fstream);
用 in.readLine() 来得到数据,然后用 in.close() 关闭输入流。
完整代码见 Example 1。用FileOutputStream 来写入数据的常用方法是:
FileOutputStream out out = new FileOutputStream("myfile.txt");
PrintStream p = new PrintStream( out );
用 p.println() 来写入数据,然后用 p.close() 关闭输入。
完整代码见 Example 2。
二.在 JDK 1.1中,支持两个新的对象 Reader & Writer, 它们只能用来对文本文件进行操作,而
JDK1.1中的 InputStream & OutputStream 可以对文本文件或二进制文件进行操作。用FileReader 来读取文件的常用方法是:
FileReader fr = new FileReader("mydata.txt");
BufferedReader br = new BufferedReader(fr);
用 br.readLing() 来读出数据,然后用br.close() 关闭缓存,用fr.close() 关闭文件。
完整代码见 Example 3。 用 FileWriter 来写入文件的常用方法是:
FileWriter fw = new FileWriter("mydata.txt");
PrintWriter out = new PrintWriter(fw);
在用out.print 或 out.println 来往文件中写入数据,out.print 和 out.println的唯一区别是后者写
入数据或会自动开一新行。写完后要记得 用out.close() 关闭输出,用fw.close() 关闭文件。
完整代码见 Example 4。Example 1:
// FileInputDemo
// Demonstrates FileInputStream and DataInputStream
import java.io.*;class FileInputDemo {
public static void main(String args[]) {
// args.length is equivalent to argc in C
if (args.length == 1) {
try {
// Open the file that is the first command line parameter
FileInputStream fstream = new FileInputStream(args[0]);
// Convert our input stream to a DataInputStream
DataInputStream in = new DataInputStream(fstream);
// Continue to read lines while there are still some left to read
while (in.available() !=0) {
// Print file line to screen
System.out.println (in.readLine());
}
in.close();
} catch (Exception e) {
System.err.println("File input error");
}
}
else
System.out.println("Invalid parameters");
}
}Example 2:
// FileOutputDemo
// Demonstration of FileOutputStream and PrintStream classes
import java.io.*;class FileOutputDemo
{
public static void main(String args[]) {
FileOutputStream out; // declare a file output object
PrintStream p; // declare a print stream objecttry {
// connected to "myfile.txt"
out = new FileOutputStream("myfile.txt");
// Connect print stream to the output stream
p = new PrintStream( out );
p.println ("This is written to a file");
p.close();
} catch (Exception e) {
System.err.println ("Error writing to file");
}
}
}Example 3:
// FileReadTest.java
// User FileReader in JDK1.1 to read a file
import java.io.*;class FileReadTest {
public static void main (String[] args) {
FileReadTest t = new FileReadTest();
t.readMyFile();
}
void readMyFile() {
String record = null;
int recCount = 0;
try {
FileReader fr = new FileReader("mydata.txt");
BufferedReader br = new BufferedReader(fr);
record = new String();
while ((record = br.readLine()) != null) {
recCount++;
System.out.println(recCount + ": " + record);
}
br.close();
fr.close();
} catch (IOException e) {
System.out.println("Uh oh, got an IOException error!");
e.printStackTrace();
}
}
} Example 4:
// FileWriteTest.java
// User FileWriter in JDK1.1 to writer a file
import java.io.*;class FileWriteTest {
public static void main (String[] args) {
FileWriteTest t = new FileWriteTest();
t.WriteMyFile();
}
void WriteMyFile() {
try {
FileWriter fw = new FileWriter("mydata.txt");
PrintWriter out = new PrintWriter(fw);
out.print(“hi,this will be wirte into the file!”);
out.close();
fw.close();
} catch (IOException e) {
System.out.println("Uh oh, got an IOException error!");
e.printStackTrace();
}
}
}
Properties props = new Properties();
props.load(new FileInputStream("filename.properties")); String value = props.getProperty("propertyname");
如果您的.properties文件打包入一个Jar或War文件,您可以使用ClassLoader的getResourceAsStream()方法得到一个InputStream对象,示例代码如下:
ClassLoader cl = this.getClass().getClassLoader();
InputStream is = cl.getResourceAsStream("com/company/application/application.properties");
存储这些参数时,您首先需要得到一个OutputStream对象,然后使用Properties的store()方法。示例代码如下:
Properties prop = new Properties();
FileOutputStream output = new FileOutputStream("Test.properties");
prop.store(output,"my testproperties");
output.flush();
output.close();如果你要修改文件内容
就是你先读出来 然后用getProperty(String key)
或者setProperty(String key, String value)
读取或修改之后 再用store(OutputStream out, String header)
存一下
class Example20_10
{ public static void main(String args[])
{ try{
RandomAccessFile file=new RandomAccessFile( "Example20_10.java ", "rw ");
long filePoint=0;
long fileLength=file.length();
while(filePoint <fileLength)
{String s=file.readLine();
System.out.println(s);
filePoint=file.getFilePointer();
}
file.close();
}
catch(Exception e){}
}
}