操纵相对程序运行的盘的根目录
package com.cauc.jndi;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameClassPair;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
public class ReadFile {
public static void main(String[] args) {
Hashtable env = new Hashtable();
// 设置JNDI工厂类,指明Service provider是文件系统.
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
// 设置JNDI文件路径
env.put(Context.PROVIDER_URL, "file:/C:/");
try {
Context ctx = new InitialContext(env);
// 初始化上下文
NamingEnumeration list = ctx.list("Program Files");
while (list.hasMore()) {
NameClassPair ne = (NameClassPair) list.next();
System.out.println(ne);
}
ctx.close();
} catch (NamingException e) {
System.err.println("file:/C: failed: " + e);
}
}
}
package com.cauc.jndi;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameClassPair;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
public class TestRead {
public static void main(String[] args) throws IOException {
try {
Hashtable env = new Hashtable();
// 设置JNDI工厂类,指明Service provider是文件系统.
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
// 设置JNDI文件路径
env.put(Context.PROVIDER_URL, "file:/C:/");
// 初始化上下文
Context ctx = new InitialContext(env);
// 循环显示在JNDI中的所有资源名与类型
NamingEnumeration list = ctx.list("/");
while (list.hasMore()) {
NameClassPair nc = (NameClassPair) list.next();
System.out.println(nc);
}
// 查找文件
File file = (File) ctx.lookup("aaa.txt");
// 读取文件
BufferedReader bw = new BufferedReader(new FileReader(file));
String line = bw.readLine();
while (line != null) {
System.out.println(line);
line = bw.readLine();
}
} catch (NamingException e) {
e.printStackTrace();
}
}
}