文件的读写操作和Internet中读取文件

来源:互联网 发布:算法导论 第3版 pdf 编辑:程序博客网 时间:2024/06/05 04:47
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 {@Overrideprotected 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;}}

0 0
原创粉丝点击