不知道是不是这个意思哈!URL url = new URL(codeBase.toString()+"../dat/output.txt");
URL url = new URL(codeBase.toString()+"/../dat/output.txt");
URL u1 = new URL("http://archive.ncsa.uiuc.edu/SDG/url-primer.html"); URL u2 = new URL(u1,"../dat/output.txt"); System.out.println(u2); =============================================== 输出是: http://archive.ncsa.uiuc.edu/dat/output.txt不知道是你要的效果否?
error!!!!!!!!!!!!!!!!!!!!E:\weblab\Telelab\lab7\PID\java\Djbh.java:165: cannot resolve symbol symbol : variable codeBase location: class Djbh URL url = new URL(codeBase.toString()+"../dat/output.txt"); HELP!!!!!!!!!!!!!!!!!!!!!!!!
URL url = new URL(getCodeBase(),"../dat/output.txt");
java.security.AccessControlException: access denied (java.io.FilePermissi eblab\Telelab\lab7\PID\dat\output.txt read) at java.security.AccessControlContext.checkPermission(AccessContr xt.java:270) at java.security.AccessController.checkPermission(AccessControlle 401) at java.lang.SecurityManager.checkPermission(SecurityManager.java at java.lang.SecurityManager.checkRead(SecurityManager.java:887) at java.io.File.isDirectory(File.java:698) at sun.net.www.protocol.file.FileURLConnection.connect(FileURLCon .java:65) at sun.net.www.protocol.file.FileURLConnection.getInputStream(Fil nection.java:156) at java.net.URL.openStream(URL.java:960) at Djbh.paint(Djbh.java:167) at sun.awt.RepaintArea.paint(RepaintArea.java:177) at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java at java.awt.Component.dispatchEventImpl(Component.java:3699) at java.awt.Container.dispatchEventImpl(Container.java:1623) at java.awt.Component.dispatchEvent(Component.java:3480) at java.awt.EventQueue.dispatchEvent(EventQueue.java:450) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDis read.java:197) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispa ad.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.ja at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.ja at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
编译能通过,显示如下 file:/E:/weblab/Telelab/lab7/PID/dat/output.txt file:/E:/weblab/Telelab/lab7/PID/java/output.dat oo0.249055 oo0.862702 oo1.662471 oo2.548436 oo3.462989 oo4.371207 oo5.250439 oo6.084794 oo6.862256 附:相关代码 ##################### import java.io.*; import java.util.StringTokenizer; import java.lang.Double; import java.lang.Integer; import java.awt.*; import java.applet.*; import java.awt.event.*; import java.net.*; public class Ceshi extends Applet { public void init() { try { String delim1 = ","; String shu,time; double a=0; URL url = new URL(getCodeBase(),"output.dat"); URL u2 = new URL(url,"../dat/output.txt"); System.out.println(u2); System.out.println(url); InputStreamReader reader = new InputStreamReader ( url.openStream( )); BufferedReader bufReader = new BufferedReader ( reader ); String name = bufReader.readLine(); StringTokenizer tokenizer; tokenizer = new StringTokenizer(name, delim1); for (int i=0;tokenizer.hasMoreTokens();i++) { shu = tokenizer.nextToken(delim1); a=Double.valueOf(shu).doubleValue();//°ü×°Æ÷ÀàDouble.valueOf System.out.println("oo"+a); } } catch (IOException ioe) { System.out.println ("I/O error : " + ioe); }
若把上面测试程序中InputStreamReader reader = new InputStreamReader ( url.openStream( )); 改为InputStreamReader reader = new InputStreamReader ( u2.openStream( )); 即,连到新的dat文件时出错 文件结构:E:/weblab/Telelab/lab7/PID/dat/output.dat------对应u2 E:/weblab/Telelab/lab7/PID/java/output.txt-----对应url 报错如下:(编译能通过,执行时报错!)file:/E:/weblab/Telelab/lab7/PID/dat/output.txt file:/E:/weblab/Telelab/lab7/PID/java/output.dat java.security.AccessControlException: access denied (java.io.FilePermission E:\w eblab\Telelab\lab7\PID\dat\output.txt read) at java.security.AccessControlContext.checkPermission(AccessControlConte xt.java:270) at java.security.AccessController.checkPermission(AccessController.java: 401) at java.lang.SecurityManager.checkPermission(SecurityManager.java:542) at java.lang.SecurityManager.checkRead(SecurityManager.java:887) at java.io.File.isDirectory(File.java:698) at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection .java:65) at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLCon nection.java:156) at java.net.URL.openStream(URL.java:960) at Ceshi.init(Ceshi.java:24) at sun.applet.AppletPanel.run(AppletPanel.java:348) at java.lang.Thread.run(Thread.java:536) 看来是java.security.AccessControlException,请达人解释一下!
URL u2 = new URL(u1,"../dat/output.txt");
System.out.println(u2);
===============================================
输出是:
http://archive.ncsa.uiuc.edu/dat/output.txt不知道是你要的效果否?
symbol : variable codeBase
location: class Djbh
URL url = new URL(codeBase.toString()+"../dat/output.txt");
HELP!!!!!!!!!!!!!!!!!!!!!!!!
eblab\Telelab\lab7\PID\dat\output.txt read)
at java.security.AccessControlContext.checkPermission(AccessContr
xt.java:270)
at java.security.AccessController.checkPermission(AccessControlle
401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java
at java.lang.SecurityManager.checkRead(SecurityManager.java:887)
at java.io.File.isDirectory(File.java:698)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLCon
.java:65)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(Fil
nection.java:156)
at java.net.URL.openStream(URL.java:960)
at Djbh.paint(Djbh.java:167)
at sun.awt.RepaintArea.paint(RepaintArea.java:177)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java
at java.awt.Component.dispatchEventImpl(Component.java:3699)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3480)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDis
read.java:197)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispa
ad.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.ja at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.ja at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
file:/E:/weblab/Telelab/lab7/PID/dat/output.txt
file:/E:/weblab/Telelab/lab7/PID/java/output.dat
oo0.249055
oo0.862702
oo1.662471
oo2.548436
oo3.462989
oo4.371207
oo5.250439
oo6.084794
oo6.862256
附:相关代码
#####################
import java.io.*;
import java.util.StringTokenizer;
import java.lang.Double;
import java.lang.Integer;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.net.*;
public class Ceshi extends Applet
{
public void init()
{
try
{
String delim1 = ",";
String shu,time;
double a=0;
URL url = new URL(getCodeBase(),"output.dat");
URL u2 = new URL(url,"../dat/output.txt");
System.out.println(u2);
System.out.println(url);
InputStreamReader reader = new InputStreamReader ( url.openStream( ));
BufferedReader bufReader = new BufferedReader ( reader );
String name = bufReader.readLine();
StringTokenizer tokenizer;
tokenizer = new StringTokenizer(name, delim1);
for (int i=0;tokenizer.hasMoreTokens();i++)
{
shu = tokenizer.nextToken(delim1);
a=Double.valueOf(shu).doubleValue();//°ü×°Æ÷ÀàDouble.valueOf
System.out.println("oo"+a);
}
}
catch (IOException ioe)
{
System.out.println ("I/O error : " + ioe);
}
}
}
//<applet code=Ceshi NAME = "TestApplet" width=561 height=410 ALIGN = middle></applet>//appletviewer Ceshi.java
################
dat和txt中存0.249055,0.862702,1.662471,2.548436,3.462989,等数字
改为InputStreamReader reader = new InputStreamReader ( u2.openStream( ));
即,连到新的dat文件时出错
文件结构:E:/weblab/Telelab/lab7/PID/dat/output.dat------对应u2
E:/weblab/Telelab/lab7/PID/java/output.txt-----对应url
报错如下:(编译能通过,执行时报错!)file:/E:/weblab/Telelab/lab7/PID/dat/output.txt
file:/E:/weblab/Telelab/lab7/PID/java/output.dat
java.security.AccessControlException: access denied (java.io.FilePermission E:\w
eblab\Telelab\lab7\PID\dat\output.txt read)
at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:270)
at java.security.AccessController.checkPermission(AccessController.java:
401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
at java.lang.SecurityManager.checkRead(SecurityManager.java:887)
at java.io.File.isDirectory(File.java:698)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection
.java:65)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLCon
nection.java:156)
at java.net.URL.openStream(URL.java:960)
at Ceshi.init(Ceshi.java:24)
at sun.applet.AppletPanel.run(AppletPanel.java:348)
at java.lang.Thread.run(Thread.java:536)
看来是java.security.AccessControlException,请达人解释一下!