Java streamtool


import java.io.*;
import java.text.DecimalFormat;

/**
 * 
* @项目名称 :ProtectSystem
* @文件名称 :StreamTool.java
* @所在包 :cn.yws.activity.util
* @功能描述 :I/O操作工具类
* @创建日期 :2012-6-1
 */
public class StreamTool {



	public static String readableFileSize(long size) {
		if (size <= 0) {
			return "0";
		}
		final String[] units = new String[]{"B", "kB", "MB", "GB", "TB"};
		int digitGroups = (int) (Math.log10(size) / Math.log10(1024));
		return new DecimalFormat("#,##0.#").format(size / Math.pow(1024, digitGroups)) + " " + units[digitGroups];
	}
	
	 public static void copy(InputStream inputStream, String filePath) throws Exception {
		 
		 byte[] buffer=readStream(inputStream);
		 save(filePath, buffer);
		 
	 }
	 /**保存数据到文件中*/
	 public static void save(File file, byte[] data) throws Exception {
		 FileOutputStream outStream = new FileOutputStream(file);
		 outStream.write(data);
		 outStream.flush();
		 outStream.close();
	 }
	 /**保存数据到文件中*/
	 public static void save(String filePath, byte[] data) throws Exception {
		 FileOutputStream outStream = new FileOutputStream(filePath);
		 outStream.write(data);
		 outStream.flush();
		 outStream.close();
	 }


	public static byte[] readFile(String filepath) throws Exception {
		ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
		FileInputStream inStream=new FileInputStream(filepath);
		byte[] buffer = new byte[1024];
		int len = -1;
		while ((len = inStream.read(buffer)) != -1) {
			outSteam.write(buffer, 0, len);
		}
		outSteam.close();
		inStream.close();
		return outSteam.toByteArray();
	} 
	 
	 public static String readLine(PushbackInputStream in) throws IOException {
			char buf[] = new char[128];
			int room = buf.length;
			int offset = 0;
			int c;
loop:		while (true) {
				switch (c = in.read()) {
					case -1:
					case '\n':
						break loop;
					case '\r':
						int c2 = in.read();
						if ((c2 != '\n') && (c2 != -1)) in.unread(c2);
						break loop;
					default:
						if (--room < 0) {
							char[] lineBuffer = buf;
							buf = new char[offset + 128];
						    room = buf.length - offset - 1;
						    System.arraycopy(lineBuffer, 0, buf, 0, offset);
						   
						}
						buf[offset++] = (char) c;
						break;
				}
			}
			if ((c == -1) && (offset == 0)) return null;
			return String.copyValueOf(buf, 0, offset);
	}
	 
	/**
	* 读取流
	* @param inStream
	* @return 字节数组
	* @throws Exception
	*/
	public static byte[] readStream(InputStream inStream) throws Exception{
			ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
			byte[] buffer = new byte[1024];
			int len = -1;
			while( (len=inStream.read(buffer)) != -1){
				outSteam.write(buffer, 0, len);
			}
			outSteam.close();
			inStream.close();
			return outSteam.toByteArray();
	}
}

你可能感兴趣的:(java)