求助大佬。
将网页源码写入txt文件,失败。
代码如下://抓取菜鸟首页源码,打印到指定文件
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;public class Demo1 { public static void main(String[] args) {
// 使用到输入字符流
BufferedReader in = null;
PrintWriter out = null; try {
// 使用URL字符串实例URL
URL url1 = new URL("http://www.runoob.com");
// 实例化URLConnection对象
URLConnection urlConnection = url1.openConnection();// 此方法返回一个URLConnection对象
// URLConnection子类HttpURLConnection
HttpURLConnection connection = null; // 判断openConnection()方法的返回值是否是HttpURLConnection对象
if (urlConnection instanceof HttpURLConnection) {
connection = (HttpURLConnection) urlConnection;// 强制类型转换
// 使用流抓取内容:从左到右:缓冲字符流BufferedReader;转化流InputStreamReader;getInputStream()方法返回字节流
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
// 输出抓取的内容到指定的txt文件
out = new PrintWriter(new FileWriter("F:\\java测试用例\\runoob.txt"));
String read = null;
read = in.readLine();
// 解决乱码问题
byte a[] = read.getBytes();
while (read != null) {
out.println(new String(a, "UTF-8"));
read = in.readLine();
a = read.getBytes();
}
System.out.println("抓取网页成功");
} else {
System.out.println("URl协议不符合要求");
System.exit(0);
}
} catch (MalformedURLException e) {
System.out.println("字符串指定未知协议");
e.printStackTrace();
} catch (IOException e) {
System.out.println("发生I/O异常");
e.printStackTrace();
} finally {
while (in != null) {
try {
in.close();
} catch (IOException e) {
System.out.println("输入流关闭失败");
e.printStackTrace();
}
}
while (out != null) {
out.close();
}
} }}感谢。
将网页源码写入txt文件,失败。
代码如下://抓取菜鸟首页源码,打印到指定文件
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;public class Demo1 { public static void main(String[] args) {
// 使用到输入字符流
BufferedReader in = null;
PrintWriter out = null; try {
// 使用URL字符串实例URL
URL url1 = new URL("http://www.runoob.com");
// 实例化URLConnection对象
URLConnection urlConnection = url1.openConnection();// 此方法返回一个URLConnection对象
// URLConnection子类HttpURLConnection
HttpURLConnection connection = null; // 判断openConnection()方法的返回值是否是HttpURLConnection对象
if (urlConnection instanceof HttpURLConnection) {
connection = (HttpURLConnection) urlConnection;// 强制类型转换
// 使用流抓取内容:从左到右:缓冲字符流BufferedReader;转化流InputStreamReader;getInputStream()方法返回字节流
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
// 输出抓取的内容到指定的txt文件
out = new PrintWriter(new FileWriter("F:\\java测试用例\\runoob.txt"));
String read = null;
read = in.readLine();
// 解决乱码问题
byte a[] = read.getBytes();
while (read != null) {
out.println(new String(a, "UTF-8"));
read = in.readLine();
a = read.getBytes();
}
System.out.println("抓取网页成功");
} else {
System.out.println("URl协议不符合要求");
System.exit(0);
}
} catch (MalformedURLException e) {
System.out.println("字符串指定未知协议");
e.printStackTrace();
} catch (IOException e) {
System.out.println("发生I/O异常");
e.printStackTrace();
} finally {
while (in != null) {
try {
in.close();
} catch (IOException e) {
System.out.println("输入流关闭失败");
e.printStackTrace();
}
}
while (out != null) {
out.close();
}
} }}感谢。
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;public class Test111 { public static void main(String[] args) {
// 使用到输入字符流
BufferedReader in = null;
PrintWriter out = null; try {
// 使用URL字符串实例URL
URL url1 = new URL("http://www.runoob.com");
// 实例化URLConnection对象
URLConnection urlConnection = url1.openConnection();// 此方法返回一个URLConnection对象
// URLConnection子类HttpURLConnection
HttpURLConnection connection = null; if (urlConnection instanceof HttpURLConnection) {
connection = (HttpURLConnection) urlConnection;// 强制类型转换
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
InputStream inputStream = connection.getInputStream();
out = new PrintWriter(new FileWriter("c:\\abc\\runoob.txt"));
byte a[] = new byte[1024];
int readLength = inputStream.read(a);
while (readLength != -1) {
String newString = new String(a, 0, readLength, "utf-8");
out.append(newString);
readLength = inputStream.read(a);
}
System.out.println("抓取网页成功");
} else {
System.out.println("URl协议不符合要求");
}
} catch (MalformedURLException e) {
System.out.println("字符串指定未知协议");
e.printStackTrace();
} catch (IOException e) {
System.out.println("发生I/O异常");
e.printStackTrace();
}
}}
输入流写法!不用buffer
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;public class Test112 { public static void main(String[] args) {
// 使用到输入字符流
BufferedReader in = null;
PrintWriter out = null; try {
// 使用URL字符串实例URL
URL url1 = new URL("http://www.runoob.com");
// 实例化URLConnection对象
URLConnection urlConnection = url1.openConnection();// 此方法返回一个URLConnection对象
// URLConnection子类HttpURLConnection
HttpURLConnection connection = null; // 判断openConnection()方法的返回值是否是HttpURLConnection对象
if (urlConnection instanceof HttpURLConnection) {
connection = (HttpURLConnection) urlConnection;// 强制类型转换
// 使用流抓取内容:从左到右:缓冲字符流BufferedReader;转化流InputStreamReader;getInputStream()方法返回字节流
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
// 输出抓取的内容到指定的txt文件
out = new PrintWriter(new FileWriter("c:\\abc\\runoob.txt"));
String read = null;
read = in.readLine();
// 解决乱码问题
while (read != null) {
byte a[] = read.getBytes();
out.println(new String(a, "UTF-8"));
read = in.readLine();
}
System.out.println("抓取网页成功");
} else {
System.out.println("URl协议不符合要求");
}
} catch (MalformedURLException e) {
System.out.println("字符串指定未知协议");
e.printStackTrace();
} catch (IOException e) {
System.out.println("发生I/O异常");
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
System.out.println("输入流关闭失败");
e.printStackTrace();
}
}
if (out != null) {
out.close();
}
} }}
buffer的写法,是你的程序逻辑有问题,帮你改了!
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.List;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;public class runoobDemo { public static void main(String[] args) {
// 使用到输入字符流
BufferedReader in = null;
PrintWriter out = null;
System.out.println("1");
try {
// 使用URL字符串实例URL
URL url1 = new URL("http://www.runoob.com");
System.out.println(url1);
// 实例化URLConnection对象
URLConnection urlConnection = url1.openConnection();// 此方法返回一个URLConnection对象
// URLConnection子类HttpURLConnection
HttpURLConnection connection = null;
// 判断openConnection()方法的返回值是否是HttpURLConnection对象
if (urlConnection instanceof HttpURLConnection) {
connection = (HttpURLConnection) urlConnection;// 强制类型转换
// 使用流抓取内容:从左到右:缓冲字符流BufferedReader;转化流InputStreamReader;getInputStream()方法返回字节流
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
// 输出抓取的内容到指定的txt文件
out = new PrintWriter(new FileWriter("d:\\runoob.txt"));
String read = null;
read = in.readLine();
// 解决乱码问题
byte a[] = read.getBytes();
while (read != null) {
out.println(new String(a, "UTF-8"));
read = in.readLine(); //修改了这里,读到最后一行read是null,所以出错
if(read!=null){
a = read.getBytes();
System.out.println(new String(a, "UTF-8"));}
}
System.out.println("抓取网页成功");
} else {
System.out.println("URl协议不符合要求");
System.exit(0);
}
} catch (MalformedURLException e) {
System.out.println("字符串指定未知协议");
e.printStackTrace();
} catch (IOException e) {
System.out.println("发生I/O异常");
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
System.out.println("输入流关闭失败");
e.printStackTrace();
}
}
if (out != null) {
out.close();
}
}
System.out.println("2222222222");
}
}