1. 程式人生 > >common-io FileUtils工具類常用方法

common-io FileUtils工具類常用方法

寫檔案原始寫法

// 通過位元組流 寫檔案
	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();
		}
	}

讀檔案原始寫法

	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);
		}
	}
FileUtils常用方法

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);
	}