common-io FileUtils工具類常用方法
阿新 • • 發佈:2019-01-03
寫檔案原始寫法
// 通過位元組流 寫檔案 public static void ByteWrite() { File file = new File("/Users/jjs/Desktop/abcd.txt"); try { OutputStream outputStream = new FileOutputStream(file); String textString = "commons-io工具類"; byte[] data = textString.getBytes("UTF-8"); outputStream.write(data); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } }
讀檔案原始寫法
FileUtils常用方法public static void ByreRead() throws IOException { //File file = new File("/Users/jjs/Desktop/abcd.txt"); FileReader reader = new FileReader("/Users/jjs/Desktop/abcd.txt"); BufferedReader br = new BufferedReader(reader); String str = null; while ((str = br.readLine()) != null) { System.out.println(str); } }
1、寫檔案
public static void main(String[] args) throws IOException { // FileUtils.write(new File("/Users/jjs/Desktop/abc.txt"), "commons-io工具類", "UTF-8", true); //以追加的方式寫入 // FileUtils.writeStringToFile(new File("/Users/jjs/Desktop/abcd.txt"), "作者:cxy", "UTF-8", true); //寫入多行 List<String> lines = new ArrayList<String>(); lines.add("第一行"); lines.add("第二行"); FileUtils.writeLines(new File("/Users/jjs/Desktop/abcd.txt"), lines, true); }
讀檔案
public static void main(String[] args) throws IOException {
//讀檔案
System.out.println(FileUtils.readFileToString(new File("/Users/jjs/Desktop/abcd.txt"), "UTF-8"));
System.out.println(FileUtils.readLines(new File("/Users/jjs/Desktop/abcd.txt"), "UTF-8")); //返回一個list
}
檔案複製
public static void main(String[] args) throws IOException {
FileUtils.copyDirectory();
FileUtils.copyDirectoryToDirectory();
FileUtils.copyFileToDirectory();
FileUtils.copyFile(new File("/Users/jjs/Desktop/abcd.txt"), new File("/Users/jjs/Desktop/abcd.txt_bak"));
//可實現快速下載
URL url = new URL("http://hzf-image-test.oss-cn-beijing.aliyuncs.com/hr_image/HF306268301810/1513632067664AbIB40pv_defalut.JPG?x-oss-process=image/resize,h_400");
File file = new File("/Users/jjs/Desktop/pic.jpg");
FileUtils.copyURLToFile(url, file);
}
實現快速下載檔案
public static void main(String[] args) throws IOException {
//下載方式1
URL url = new URL("http://www.baidu.com/img/baidu_logo.gif");
File file = new File("/Users/jjs/Desktop/baidu1.gif");
FileUtils.copyURLToFile(url, file);
//下載方式2
InputStream in = new URL("http://www.baidu.com/img/baidu_logo.gif").openStream();
byte[] gif = IOUtils.toByteArray(in);
FileUtils.writeByteArrayToFile(new File("/Users/jjs/Desktop/baidu2.gif"), gif);
IOUtils.closeQuietly(in);
//下載方式3
InputStream in3 = new URL("http://www.baidu.com/img/baidu_logo.gif").openStream();
byte[] gif3 = IOUtils.toByteArray(in3);
IOUtils.write(gif3, new FileOutputStream(new File("/Users/jjs/Desktop/baidu3.gif")));
IOUtils.closeQuietly(in3);
}
實現快速複製
public static void main(String[] args) throws IOException {
//複製方式1
FileUtils.copyFile(new File("/Users/jjs/Desktop/abc.txt"), new File("/Users/jjs/Desktop/abc_bak.txt"));
//複製方式2
Writer write = new FileWriter("/Users/jjs/Desktop/abc_bak.txt");
InputStream ins = new FileInputStream(new File("/Users/jjs/Desktop/abc.txt"));
IOUtils.copy(ins, write);
write.close();
IOUtils.closeQuietly(ins);
//將內容同時寫入兩個不同的檔案,就當是一種另類的複製吧
File test1 = new File("/Users/jjs/Desktop/split1.txt");
File test2 = new File("/Users/jjs/Desktop/split2.txt");
OutputStream outStream = null;
try {
FileOutputStream fos1 = new FileOutputStream(test1);
FileOutputStream fos2 = new FileOutputStream(test2);
//包含不同的文字
outStream = new TeeOutputStream(fos1, fos2);
outStream.write("One Two Three, Test".getBytes());
outStream.flush();
} catch (IOException ioe) {
System.out.println("Error writing to split output stream");
} finally {
IOUtils.closeQuietly(outStream);
}
}
獲取網頁的內容
public static void main(String[] args) throws IOException {
URL webUrl = new URL("https://wenku.baidu.com/view/7999faba960590c69ec376be.html?from=search");
// URL webUrl = new URL("http://ent.ifeng.com/a/20180105/43019249_0.shtml?_zbs_baidu_news");
InputStream ins = webUrl.openStream();
String contents = IOUtils.toString(ins, "gb2312");
System.out.println("contents: " + contents);
}