知乎服务器返回信息失效,Java爬虫(一)利用GET和POST发送请求,获取服务器返回信息(示例代码)...

本文介绍了StreamUtils类,提供高效的方法来处理Java流,包括从InputStream读取字符串、创建文件读写器和BufferedReader等。它简化了文件操作和字符串处理,有助于提高开发效率。
摘要由CSDN通过智能技术生成

importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.OutputStreamWriter;importjava.io.Reader;importjava.io.UnsupportedEncodingException;importjava.io.Writer;/*** Created by admin on 2016/2/18.*/

public classStreamUtils {public static String readFromStream(InputStream inputStream) throwsIOException {

ByteArrayOutputStream outputStream= newByteArrayOutputStream();int len = 0;byte[] buffer = new byte[1024];while ((len = inputStream.read(buffer)) != -1) {

outputStream.write(buffer,0, len);

}

String result=outputStream.toString();

inputStream.close();

outputStream.close();returnresult;

}private staticString line;public static FileReader createFileReader(File file) throwsFileNotFoundException {return newFileReader(file);

}public static FileWriter createFileWriter(File file) throwsIOException {return newFileWriter(file);

}public staticInputStreamReader createInputStreamReader(Object obj) {if (obj instanceofFile)if (!((File) obj).exists())

((File) obj).getParentFile().mkdirs();try{return new InputStreamReader(new FileInputStream((File) obj), "utf-8");

}catch(UnsupportedEncodingException e) {

e.printStackTrace();

}catch(FileNotFoundException e) {

e.printStackTrace();

}return null;

}public staticOutputStreamWriter createOutputStreamWriter(Object obj) {if (obj instanceofFile)if (!((File) obj).exists())

((File) obj).getParentFile().mkdirs();try{return new OutputStreamWriter(new FileOutputStream((File) obj, true), "utf-8");

}catch(UnsupportedEncodingException e) {

e.printStackTrace();

}catch(FileNotFoundException e) {

e.printStackTrace();

}return null;

}public static BufferedReader createBufferedReader(Object obj, String cd) throwsIOException {if (obj instanceofString)return new BufferedReader(createInputStreamReader(newFile((String) obj)));if (obj instanceofInputStream) {if (cd == null)return new BufferedReader(newInputStreamReader((InputStream) obj));else

return new BufferedReader(newInputStreamReader((InputStream) obj, cd));

}if (obj instanceofFile) {if (!((File) obj).exists())

((File) obj).createNewFile();return newBufferedReader(createFileReader((File) obj));

}if (obj instanceofReader)return newBufferedReader((Reader) obj);if (obj instanceofBufferedReader)return(BufferedReader) obj;return null;

}public static BufferedWriter createBufferedWriter(Object obj) throwsIOException {if (obj instanceofString)return new BufferedWriter(createOutputStreamWriter(newFile((String) obj)));if (obj instanceofOutputStream)return new BufferedWriter(new OutputStreamWriter((OutputStream) obj, "utf-8"));if (obj instanceofFile)return newBufferedWriter(createOutputStreamWriter(obj));if (obj instanceofWriter)return newBufferedWriter((Writer) obj);if (obj instanceofBufferedWriter)return(BufferedWriter) obj;return null;

}public interfaceOnGetStringListener {voidonGetString(String line);voidonGeted();

}public static voidgetString(Object obj, OnGetStringListener listener) {

BufferedReader br;try{

br= createBufferedReader(obj, null);if (br != null) {while ((line = br.readLine()) != null) {

listener.onGetString(line);

}

listener.onGeted();

br.close();

}

}catch(IOException e) {

e.printStackTrace();

}

}public staticString getString(Object obj) {

BufferedReader br;

String str= "";try{

br= createBufferedReader(obj, "utf-8");if (br != null) {while ((line = br.readLine()) != null) {

str+= line + "\n";

}

}

}catch(IOException e) {

e.printStackTrace();

}returnstr;

}public static voidwriteString(Object obj, String str) {

BufferedWriter bw;try{

bw=createBufferedWriter(obj);if (bw != null) {

bw.write(str);

bw.close();

}

}catch(IOException e) {

e.printStackTrace();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值