运行时,我在控制台中收到此错误消息。我哪里出错了? “显示C:/Users/Nimit/Desktop/n.txt错误”
import java.io.IOException;
import javax.swing.*;
public class exmpleText
{
public static void main(String[] args)
{
String url = "C:/Users/Nimit/Desktop/n.txt";
try
{
JFrame frame=new JFrame("Hi");
JEditorPane Pane = new JEditorPane(url);
Pane.setEditable(false);
frame.add(new JScrollPane(Pane));
}
catch(IOException ioe)
{
System.err.println("Error displaying " + url);
}
}
}
答案 0 :(得分:5)
你的第一个错误是这一行。
System.err.println("Error displaying " + url);
错误不在于它正在做什么,而是在做什么。还应该做的是打印(至少)异常消息,最好打印堆栈跟踪。
现在您已经看到/向我们展示了堆栈跟踪,很清楚底层错误是什么。字符串"C:/Users/Nimit/Desktop/n.txt"
不是有效的网址。有效的文件URL以"file:"
方案开头。
使用Windows驱动器号的文件URL写为"file:///C:/Users/Nimit/Desktop/n.txt"
。
参考:http://blogs.msdn.com/b/ie/archive/2006/12/06/file-uris-in-windows.aspx
或者,您可以使用new File("some path").toURL()
将路径名转换为网址。
答案 1 :(得分:3)
您应该使用ioe.printStackTrace()
import java.io.IOException;
import javax.swing.*;
public class ExempleText {
public static void main(String[] args) {
String url = "C:/Users/Nimit/Desktop/n.txt";
try {
JFrame frame=new JFrame("Hi");
JEditorPane Pane = new JEditorPane(url);
Pane.setEditable(false);
frame.add(new JScrollPane(Pane));
} catch(IOException ioe) {
System.err.println("Error displaying " + url);
ioe.printStackTrace();
}
}
}
答案 2 :(得分:0)
更正后的代码
import java.io.*;
import javax.swing.*;
import java.net.*;
public class exmpleText
{
public static void main(String[] args)
{
String url = "C:\\Users\\welcome\\z.txt";
File f = new File(url);
try
{
URL x = f.toURL();
System.out.println(x);
JFrame frame=new JFrame("Hi");
JEditorPane Pane = new JEditorPane(x);
Pane.setEditable(false);
frame.add(new JScrollPane(Pane));
frame.setVisible(true);
}
catch(Exception ioe)
{
System.out.println(ioe);
System.err.println("Error displaying " + url);
}
}
}
答案 3 :(得分:0)
在创建JFrame对象后添加此代码
try{
editorPane.setContentType("text/html");
Reader fileRead=new FileReader(name); // name is the file you want to read
editorPane.read(fileRead,null);
} catch(Exception e) {
e.printStackTrace();
}