Java使用字节流读取数据
2016-05-17 14:34
441 查看
输入流
输出流
通过字节流拷贝文件(gif动画)
带缓冲的字节流读取数据,BufferedOutputStream和BufferedInputStream
public static void main(String[] args) { try { //输入流,用来读取数据 FileInputStream fis=new FileInputStream("text.txt"); byte input[]=new byte[40];//创建字节数组 fis.read(input);//将数据读取到input 中 String str=new String(input,"utf-8"); System.out.println(str); fis.close();//关闭 } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
输出流
public static void main(String[] args) { try { //输出流 FileOutputStream fos=new FileOutputStream("textw.txt"); String str="wq123455"; byte[]out=str.getBytes("utf-8"); fos.write(out);//写入数据 fos.close();//关闭 } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } ;
通过字节流拷贝文件(gif动画)
public static void main(String[] args) { try { FileInputStream fis=new FileInputStream("a.gif"); FileOutputStream fos=new FileOutputStream("a_new.gif"); byte input[]=new byte[30];//字节数组 while (fis.read(input)!=-1) {//读取到input字节数组中 fos.write(input);//将数组写入到新的文件 } fis.close(); fos.close(); System.out.println("done"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
带缓冲的字节流读取数据,BufferedOutputStream和BufferedInputStream
public static void main(String[] args) { try { FileInputStream fis=new FileInputStream("mps.mp4"); BufferedInputStream bis=new BufferedInputStream(fis,1000000);//缓冲输入流,1000=1kb,缓冲区大小 FileOutputStream fos=new FileOutputStream("mas_new.mp4"); BufferedOutputStream bos=new BufferedOutputStream(fos,1000000);//缓存输出流 //大型文件对应的数组可以大些,小型文件就小些 byte input[]=new byte[100000]; long before=System.currentTimeMillis(); int count = 0;//定义个变量 while (bis.read(input)!=-1) {//读取的数据等于-1代表读完,跳出循环 bos.write(input); count++; } bis.close();//后打开的先关闭 fis.close();//先打开的后关闭 bos.close(); fos.close(); long time=System.currentTimeMillis()-before;//读取耗时的时间 System.out.println("耗时"+time+"mm"); System.out.println("共读取了"+count+"次"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树