当前位置: 代码迷 >> Android >> 在Android中兑现文件读写
  详细解决方案

在Android中兑现文件读写

热度:95   发布时间:2016-05-01 16:25:20.0
在Android中实现文件读写
android 实现下载文件
/**  * 从网上下载[email protected] url 下载路径[email protected] outputFile 创建本地保存流的文件[email protected]  * @return 下载失败返回1(比如没有网络等情况)下载成功返回0  */  public static int downloadFile(String urlPsth, File outputFile) {  int result=0;  try {  URL url = new URL(urlPsth);  HttpURLConnection conn =(HttpURLConnection) url.openConnection();  conn.setDoInput(true);  conn.connect();  if( conn.getResponseCode() == HttpURLConnection.HTTP_OK)  {  InputStream is = conn.getInputStream();  FileOutputStream fos = new FileOutputStream(outputFile);  byte[] bt = new byte[1024];  int i = 0;  while ((i = is.read(bt)) > 0) {  fos.write(bt, 0, i);  }  fos.flush();  fos.close();  is.close();  }else {  result=1;  }  } catch (FileNotFoundException e) {  result=1;  } catch (IOException e) {  result=1;  }  return result;  }


编程中文件读写是少不了的,如下:

读:
public String ReadSettings(Context context){
      FileInputStream fIn = null;
      InputStreamReader isr = null;
     
      char[] inputBuffer = new char[255];
      String data = null;
     
      try{
       fIn = openFileInput("settings.dat");      
          isr = new InputStreamReader(fIn);
          isr.read(inputBuffer);
          data = new String(inputBuffer);
          Toast.makeText(context, "Settings read",Toast.LENGTH_SHORT).show();
          }
          catch (Exception e) {      
          e.printStackTrace();
          Toast.makeText(context, "Settings not read",Toast.LENGTH_SHORT).show();
          }
          finally {
             try {
                    isr.close();
                    fIn.close();
                    } catch (IOException e) {
                    e.printStackTrace();
                    }
          }
          return data;
     }

写:
    public void WriteSettings(Context context, String data){
      FileOutputStream fOut = null;
      OutputStreamWriter osw = null;
     
      try{
       fOut = openFileOutput("settings.dat",MODE_PRIVATE);      
          osw = new OutputStreamWriter(fOut);
          osw.write(data);
          osw.flush();
          Toast.makeText(context, "Settings saved",Toast.LENGTH_SHORT).show();
          }
          catch (Exception e) {      
          e.printStackTrace();
          Toast.makeText(context, "Settings not saved",Toast.LENGTH_SHORT).show();
          }
          finally {
             try {
                    osw.close();
                    fOut.close();
                    } catch (IOException e) {
                    e.printStackTrace();
                    }
          }
     }

使用方法:
WriteSettings(this,"setting0, setting1, setting2");
String data[] = ReadSettings(this).split(",");


在读取txt文件时,可能会遇到中文乱码情况,解决办法如下:
private String getTextString(String pathandname) throws IOException{				String str="";				FileInputStream fis = new FileInputStream(pathandname);//		InputStreamReader isr=new InputStreamReader(fis, "gbk");//		BufferedReader br=new BufferedReader(isr);				int size=fis.available();				byte[] buffer=new byte[size];				fis.read(buffer);		fis.close();		   		str = new String(buffer,"GBK");//支持双字节字符				myApp.setCharNumofString(str.length());//存储总字符数				return  str;	}

读取assets文件夹下的txt文件
http://gundumw100.iteye.com/blog/850611
  相关解决方案