我想讀取一個URL,然後將其轉換爲字符串並將內容寫入文本文件,但在編譯代碼時出現以下異常。這裏是我的代碼和我的例外:閱讀URL時沒有協議異常
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
public class Main {
public static String url = "google.com";
public static String fileName= null;
public static String fileConttent ="Something";
public static void main(String[] args) throws Exception {
getText(new String(url));
}
public static void getText(String url) throws Exception {
URL website = new URL("url\n" +
" public static void main(String[] args) throws Exception {\n" +
" getText(new String(url));\n" +
" }\n" +
"\n" +
" public static void getText(String url) throws Exception {\n" +
" URL website = new URL(\"url");
URLConnection connection = website.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
connection.getInputStream()));
StringBuilder response = new StringBuilder();
String inputLine;
while ((inputLine = in.readLine()) != null)
response.append(inputLine);
in.close();
String toBeWritten = response.toString();
System.out.println(toBeWritten);
}
public static void createFile(String fileName,String fileContent){
Writer writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("C:\\Users\\Dell\\Documents\\t"+"fileName"), "utf-8"));
writer.write(fileContent);
} catch (IOException ex) {
// report
} finally {
try {writer.close();} catch (Exception ex) {}
}
}
}
這是我的例外:
Exception in thread "main" java.net.MalformedURLException: no protocol: url
at java.net.URL.<init>(URL.java:583)
at java.net.URL.<init>(URL.java:480)
at java.net.URL.<init>(URL.java:429)
at Main.getText(Main.java:15)
at Main.main(Main.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
過程與退出代碼完成1
應該做些什麼來解決這個問題?提前感謝所有答案。
更新
非常感謝你的回答。我做了你所說的,但我仍然得到同樣的錯誤。
Exception in thread "main" java.net.MalformedURLException: no protocol: url
public static void main(String[] args) throws Exception {
getText(new String(url));
}
public static void getText(String url) throws Exception {
URL website = new URL("url
at java.net.URL.<init>(URL.java:583)
at java.net.URL.<init>(URL.java:480)
at java.net.URL.<init>(URL.java:429)
at Main.getText(Main.java:15)
at Main.main(Main.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
過程完成,退出代碼爲1
問題已解決謝謝 –
這真的學會閱讀堆棧跟蹤很好的做法。編譯器通常會告訴你代碼失敗(或接近它)的行號。 –
@Israel如果你已經解決了這個問題,你能發表一個答案來解釋解決方案是什麼嗎? – Zyerah