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

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

数据保存发送到电子邮件中备份,首要前提应该先在模拟器中设置好电子邮件帐户,设置如下:

  • 第一步,启动模拟器,打开“菜单”,选择“电子邮件”项,填写相应帐号和密码。
    Android 小项目之--数据存储【Network】(附源码)
  • 第二步,点击NEXT,程序自动配置电子邮件相关信息。
    Android 小项目之--数据存储【Network】(附源码)
  • 第三步,配置完成后,输入相应的名称信息,即可设置完成,接下来程序会默认帮你导入你输入邮箱帐号的相关信息
    Android 小项目之--数据存储【Network】(附源码)

业务逻辑如下:示例中有一个文本框用来模拟用户的信息,当程序退出的时候保存文本档的信息,并转到发送邮件的页面,让用户把信息保存到邮箱 里面。具体代码参考如下:

Android 小项目之--数据存储【Network】(附源码)
ExpandedBlockStart.gif
发送信息保存到邮箱

package
 com.terry;


import
 android.app.Activity; 

import
 android.content.Intent;

import
 android.net.Uri;

import
 android.os.Bundle; 

import
 android.view.KeyEvent;

import
 android.widget.EditText;


public
 
class
 networkActivity 
extends
 Activity { 
    

private
 EditText myEditText;
    

/**
 Called when the activity is first created. 
*/

    @Override
    

public
 
void
 onCreate(Bundle savedInstanceState) {

        

super
.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
        
        myEditText

=
(EditText)findViewById(R.id.myEditText4); 
        
    }
    
    @Override
    

public
 
boolean
 onKeyDown(
int
 keyCode, KeyEvent event) {

        

//
 TODO Auto-generated method stub


        
if
(keyCode
==
KeyEvent.KEYCODE_BACK)
        {

            

//
发送邮件地址


            Uri uri
=
Uri.parse(

mailto:285735942@qq.com

);
            

//
创建intent


            Intent it
=
new
 Intent(Intent.ACTION_SENDTO,uri);
            it.putExtra(android.content.Intent.EXTRA_SUBJECT, 


网络存储

);
            it.putExtra(android.content.Intent.EXTRA_TEXT, myEditText.getText());
            startActivity(it);
            

this
.finish();
            

return
 
true
;
        }
        
        

return
 
super
.onKeyDown(keyCode, event);
    }
}Android 小项目之--数据存储【Network】(附源码)

 

扩展

既然发送数据保存到网络上,当然也可以获得网络上的数据,下面我们通过一个小例子来实现从网路上加载一个txt文件的小说程序 。如图:

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

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

 

Android 小项目之--数据存储【Network】(附源码)
ExpandedBlockStart.gif
读取XML代码参考

package
 com.terry;


import
 java.io.BufferedInputStream;

import
 java.io.InputStream;

import
 java.net.URL;

import
 java.net.URLConnection;


import
 org.apache.http.util.ByteArrayBuffer;


import
 android.app.Activity;

import
 android.os.Bundle;

import
 android.widget.TextView;


public
 
class
 readxmlActivity 
extends
 Activity {

    @Override
    
protected
 
void
 onCreate(Bundle savedInstanceState) {

        

//
 TODO Auto-generated method stub


        
super
.onCreate(savedInstanceState);
        setContentView(R.layout.readxml);
        
        TextView tv

=
(TextView)findViewById(R.id.TextView01);
        
        String msg

=
“”
;
        

try
 {

            URL url

=
new
 URL(

http://www.az1314.com/txt/00.txt

); 
//
要访问的数据文件


            URLConnection con
=
url.openConnection();
            InputStream is

=
con.getInputStream();
            BufferedInputStream bis

=
new
 BufferedInputStream(is);
            ByteArrayBuffer baf

=
new
 ByteArrayBuffer(
100
);
            

int
 current
=
0
;
            

while
 ((current
=
bis.read())
!=
 

1
) {

                 baf.append((

byte
)current);
            }
            msg

=
new
 String(baf.toByteArray());
            
        } 

catch
 (Exception e) {

            

//
 TODO: handle exception


            msg
=
e.getMessage();
        }
        tv.setText(msg);
    }
}

方法讲解:

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。代码如上,运行效果图:

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

因为在模拟器运行。 出现乱码了,如果你有真机不妨在真机上试试。

Tip: 访问外部网络需要在配置文件中给予权限,如果你没有权限将会出现如下界面:

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

权限代码如下:

 

      android:versionCode=”1″
      android:versionName=”1.0″>
    

<
application 
android:icon
=”@drawable/icon”
 android:label
=”@string/app_name”
>

        

<
activity 
android:name
=”.networkActivity”

                  android:label

=”@string/app_name”
>

            
        

</
activity
>

    
<
activity 
android:name
=”.readxmlActivity”
><
intent-filter
>

                

<
action 
android:name
=”android.intent.action.MAIN”
 
/>

                

<
category 
android:name
=”android.intent.category.LAUNCHER”
 
/>

            

</
intent-filter
></
activity
>


</
application
>


<
uses-permission 
android:name
=”android.permission.INTERNET”
/>

 

至此四种数据存储完结。

 

源码下载:/Files/TerryBlog/NetworkdDemo.rar

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110760.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 怎么开外汇平台_如何搭建一个外汇平台

    怎么开外汇平台_如何搭建一个外汇平台外汇市场从世纪之初进入中国,到如今有十几个年头。从起初耳熟能详的几个平台商到现在如雨后春笋般出现,中国的外汇市场越来越开放,价格成本也越来越透明。很多外汇代理商不断发展壮大,对搭建自己的平台有了需求。开外汇平台赚钱,是一个普遍流传的说法。但是开平台到底有怎么样的风险,需要注意哪些环节,要办理哪些手续,多数人还是感到非常神秘。汇商琅琊榜小编今天结合平台搭建行业资深人士的经验,来和大家谈谈怎么样搭建…

  • 【python表白神器】手把手教你用代码浪漫追求对象!(附完整源码+讲解)

    【python表白神器】手把手教你用代码浪漫追求对象!(附完整源码+讲解)文章目录前言演示网站制作部署网站二维码制作总结前言跟着我做,不要跳着看,否则你会失败。第一步是制作二维码;第二步是制作网站。演示具体成果地址:https://yanghanwen.xyz/ai/网站制作首先你需要下载我的这个完整项目:链接:https://pan.baidu.com/s/1EmRehx_gRnT5hLjJvKuAIg提取码:pz1y–来自百度网盘超级会员V2的分享下载好后文件目录如下:然后你需要注意的是我把img里面的图片删了,涉及隐私,大家自己替换自己追

    2022年10月15日
  • sigaction 使用

    sigaction 使用函数sigaction原型:intsigaction(intsigno,conststructsigaction*restrictact,structsigaction*restrictoact);@signo信号编号@act要注册的信号动作@oact原信号动作参数structsigactionstructsigaction{

  • js获取当前年月日时分秒_js获取当前系统时间年月日

    js获取当前年月日时分秒_js获取当前系统时间年月日vardate=newDate();date.getYear();//获取当前年份(2位)date.getFullYear();//获取完整的年份(4位)date.getMonth();//获取当前月份(0-11,0代表1月)date.getDate();//获取当前日(1-31)date.getDay();//获取当前星期X(0-6,0代表星期天)date.getT…

  • 增强的for语句可以方便地遍历数组_java遍历字符串

    增强的for语句可以方便地遍历数组_java遍历字符串增强for循环快捷键:iter+回车键。for增强for循环和普通for循环的区别普通for循环可以没有遍历的目标,增强for循环。缺点不能在这个增强循环里动态删除集合里面的内容,获取下标等。使用场景增强for循环主要就是为了方便遍历。…

  • windows nslookup命令详解_nslookup unknown

    windows nslookup命令详解_nslookup unknown1问题今天是特别傻逼,既然问了一个很愚蠢的问题,登录后台需要相关的ip,但是我只有域名,这么太突然来,我既然不知道用nslookup命令,好吧,先记录起来,希望下次不要犯这样的傻逼错误2查看电脑的所有配置在windowd终端输入如下命令ifconfig/all3nslookup正向查找(通过域名找对于的i…

    2022年10月19日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号