文件的读写操作和Internet中读取文件
2015-11-24 12:51
344 查看
package com.xiaoke.internetandfile; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } private byte[] readFile(String path,InputStream in) throws IOException { //直接获取一个流 BufferedInputStream bis=new BufferedInputStream(in); //从地址源获得流 FileInputStream fis=new FileInputStream(path); //解析流里面的数据 ByteArrayOutputStream bao=new ByteArrayOutputStream(); byte[] buffer=new byte[2048]; int len; while((len=fis.read(buffer))!=-1){ bao.write(buffer,0,len); } // String s=bao.toString(); // Log.d("读取的数据为", s); byte[] data = bao.toByteArray(); bao.flush(); bao.close(); return data; } public boolean writeSDcard(String path, String name, String content) throws IOException { boolean tempBoolean = false; // 创建文件夹 File mkPath = new File(path); mkPath.mkdir(); // 创建文件 File fileName = new File(mkPath, name); fileName.createNewFile(); FileOutputStream fos = new FileOutputStream(fileName); // 写入内容 fos.write(content.getBytes()); fos.flush(); fos.close(); tempBoolean = true; return tempBoolean; } // 获取原始数据 public byte[] loadInternet(String u) throws Exception { // 给定网址获取URL对象 URL url = new URL(u); // 获取HttpURLConnection对象 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(30000); conn.setDoInput(true); // 设置相应时间 conn.setReadTimeout(30000); // 允许连接 conn.connect(); // 通过HttpURLConnection对象获取输入字节流 InputStream is = conn.getInputStream(); // 获取Bitmap // Bitmap b=BitmapFactory.decodeStream(is); // 创建输入字符流 BufferedInputStream bis = new BufferedInputStream(is); // 创建缓存输出字节流 ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 设置获取数据大小的数组 final int BUFFER_SIZE = 2048; final int EOF = -1; int c; byte[] buf = new byte[BUFFER_SIZE]; // 将读入的数据写入缓存字节流中 while (true) { c = bis.read(buf); if (c == EOF) break; baos.write(buf, 0, c); } conn.disconnect(); is.close(); // 字节数组获取数据 byte[] data = baos.toByteArray(); baos.flush(); // 返回数据 return data; } }
相关文章推荐
- 对图片进行缩放
- jQuery each用法及each解析json
- MySQL 5.7在线设置复制过滤
- 水题列表
- (十四)洞悉linux下的Netfilter&iptables:开发一个match模块【实战】
- oracle 11g 数据泵导入导出方法
- Struts之参数传递
- div+css页面布局-CSS设置
- (十三)洞悉linux下的Netfilter&iptables:为防火墙增添功能模块【实战】
- 1081. Rational Sum (20)
- 在图片上添加文字水印
- Dijkstra优先队列优化
- 1081. Rational Sum (20)
- 用宏简化枚举类型的字符串输出
- 数据库同步工具HKROnline SyncNavigator SQL Server互同步MySQL
- shadre - SubShader
- 【IMPDP】实现不同用户之间的数据迁移——REMAP_SCHEMA参数
- 强连通分量(模板)
- Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新
- POJ - 2100 Graveyard Design