Android 小项目之--数据存储【Network】(附源码)

将数据保存发送到电子邮件中备份,首要前提应该先在模拟器中设置好电子邮件帐户,设置如下:
  • 第一步,启动模拟器,打开“菜单”,选择“电子邮件”项,填写相应帐号和密码。
  • 第二步,点击NEXT,程序自动配置电子邮件相关信息。
  • 第三步,配置完成后,输入相应的名称信息,即可设置完成,接下来程序会默认帮你导入你输入邮箱帐号的相关信息
     
业务逻辑如下:示例中有一个文本框用来模拟用户的信息,当程序退出的时候保存文本档的信息,并转到发送邮件的页面,让用户把信息保存到邮箱 里面。具体代码参考如下:

  1. package com.terry;

  2. import android.app.Activity; 
  3. import android.content.Intent;
  4. import android.net.Uri;
  5. import android.os.Bundle; 
  6. import android.view.KeyEvent;
  7. import android.widget.EditText;

  8. public class networkActivity extends Activity { 
  9.     private EditText myEditText;
  10.     /** Called when the activity is first created. */
  11.     @Override
  12.     public void onCreate(Bundle savedInstanceState) {
  13.         super.onCreate(savedInstanceState);
  14.         setContentView(R.layout.main); 
  15.         
  16.         myEditText=(EditText)findViewById(R.id.myEditText4); 
  17.         
  18.     }
  19.     
  20.     @Override
  21.     public boolean onKeyDown(int keyCode, KeyEvent event) {
  22.         // TODO Auto-generated method stub
  23.         if(keyCode==KeyEvent.KEYCODE_BACK)
  24.         {
  25.             //发送邮件地址
  26.             Uri uri=Uri.parse("mailto:285735942@qq.com");
  27.             //创建intent
  28.             Intent it=new Intent(Intent.ACTION_SENDTO,uri);
  29.             it.putExtra(android.content.Intent.EXTRA_SUBJECT, "网络存储");
  30.             it.putExtra(android.content.Intent.EXTRA_TEXT, myEditText.getText());
  31.             startActivity(it);
  32.             this.finish();
  33.             return true;
  34.         }
  35.         
  36.         return super.onKeyDown(keyCode, event);
  37.     }
  38. }
复制代码
 
扩展既然发送数据保存到网络上,当然也可以获得网络上的数据,下面我们通过一个小例子来实现从网路上加载一个txt文件的小说程序 。如图:


逻辑代码如下:首先创建一个我们要访问的URL地址,然后取链接的文件,循环把数据读取出来。具体代码参考如下:
  1. package com.terry;

  2. import java.io.BufferedInputStream;
  3. import java.io.InputStream;
  4. import java.net.URL;
  5. import java.net.URLConnection;

  6. import org.apache.http.util.ByteArrayBuffer;

  7. import android.app.Activity;
  8. import android.os.Bundle;
  9. import android.widget.TextView;

  10. public class readxmlActivity extends Activity {

  11.     @Override
  12.     protected void onCreate(Bundle savedInstanceState) {
  13.         // TODO Auto-generated method stub
  14.         super.onCreate(savedInstanceState);
  15.         setContentView(R.layout.readxml);
  16.         
  17.         TextView tv=(TextView)findViewById(R.id.TextView01);
  18.         
  19.         String msg="";
  20.         try {
  21.             URL url=new URL("http://www.az1314.com/txt/00.txt"); //要访问的数据文件
  22.             URLConnection con=url.openConnection();
  23.             InputStream is=con.getInputStream();
  24.             BufferedInputStream bis=new BufferedInputStream(is);
  25.             ByteArrayBuffer baf=new ByteArrayBuffer(100);
  26.             int current=0;
  27.             while ((current=bis.read())!= -1) {
  28.                  baf.append((byte)current);
  29.             }
  30.             msg=new String(baf.toByteArray());
  31.             
  32.         } catch (Exception e) {
  33.             // TODO: handle exception
  34.             msg=e.getMessage();
  35.         }
  36.         tv.setText(msg);
  37.     }
  38. }
复制代码
方法讲解:URL共有六种构造方法,分别如下:
  • URL(String spec)
    通过传进来的字符串分析,创建一个新的URL实例。
  • URL(URL context, String spec)
    通过传进来的字符串分析,创建一个新的URL实例。需要一个URL的参数
  • URL(URL context, String spec, URLStreamHandler handler)
    通过传进来的字符串分析,创建一个新的URL实例
  • URL(String protocol, String host, String file)
    使用给定的参数创建一个URL实例,需要指定协议,主机文件名
  • URL(String protocol, String host, int port, String file)
    使用给定的参数创建一个URL实例,需要指定协议,主机,端口和文件名
  • URL(String protocol, String host, int port, String file, URLStreamHandler handler)
    使用给定的参数创建一个URL实例,需要指定协议,主机,端口、文件名和处理程序
URLConnection介绍:
  • 用以来实现提供一个具有特定协议类的连接源。
  • getInputStream  主要用来读取一个URLConnection的资源数据,返回一个InputStream,本文将使用这个方法获取数据
在此不多介绍URLConnection此类,感兴趣的朋友可以查看一下SDK。代码如上,运行效果图:   因为在模拟器运行。 出现乱码了,如果你有真机不妨在真机上试试。Tip: 访问外部网络需要在配置文件中给予权限,如果你没有权限将会出现如下界面:

 

权限代码如下:
  1.   android:versionCode="1"
  2.       android:versionName="1.0">
  3.     <application android:icon="@drawable/icon" android:label="@string/app_name">
  4.         <activity android:name=".networkActivity"
  5.                   android:label="@string/app_name">
  6.             
  7.         </activity>

  8.     <activity android:name=".readxmlActivity"><intent-filter>
  9.                 <action android:name="android.intent.action.MAIN" />
  10.                 <category android:name="android.intent.category.LAUNCHER" />
  11.             </intent-filter></activity>
  12. </application>
  13. <uses-permission android:name="android.permission.INTERNET"/>
复制代码
至此四种数据存储完结。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值