package top.lolcl.test;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameClassPair;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
/**
* 需要引入目录资源服务fscontext.jar与providerutil.jar两个jar包
* @author sanch
*
*/
public class JNDIFile {
public static void main(String[] args) throws NamingException {
Hashtable env = new Hashtable();
//设置JNDI工厂类
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.RefFSContextFactory");
//设置JNDI文件路径
env.put(Context.PROVIDER_URL, "file:///d:/");
//初始化上下文
Context ctx = new InitialContext(env);
//循环显示在JNDI中的所有资源名与类型
NamingEnumeration<NameClassPair> list = ctx.list("/");
while(list.hasMore()){
NameClassPair nc = (NameClassPair)list.next();
System.out.println("资源打印:"+nc);
}
}
}
package top.lolcl.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
* JNDI文件读取示例
* @author sanch
*
*/
public class Test {
/**
* @param args
* @throws NamingException
*/
public static void main(String[] args) throws Exception {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
env.put(Context.PROVIDER_URL, "file:///d:/");
Context ctx = new InitialContext(env);
//使用JNDI查找文件
File file = (File)ctx.lookup("/ADSL上网帐号.txt");
//读取文件
BufferedReader bw = new BufferedReader(new FileReader(file));
String line = null;
while((line =bw.readLine()) != null){
System.out.println(line);
}
}
}