文章目录

  • MainActivity.java
  • activity_main.xml
  • SPTestActivity.java
  • activity_sptest.xml
  • InnerFileActivity.java
  • activity_inner_file.xml
  • OfActivity.java
  • activity_of.xml
  • DbActivity.java
  • activity_db.xml
  • DBHelper.java
  • NetworkActivity.java
  • activity_network.xml

MainActivity.java

package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button   button=findViewById(R.id.btn_sp);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this,SPTestActivity.class));}});Button   btn_inner=findViewById(R.id.btn_file_inner);btn_inner.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this,InnerFileActivity.class));}});Button   btn_of=findViewById(R.id.btn_file_OF);btn_of.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this,OfActivity.class));}});Button   btn_DB=findViewById(R.id.btn_DB);btn_DB.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startActivity(new Intent(MainActivity.this,DbActivity.class));}});}
}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:text="数据存储方式"android:textColor="#ff0000"android:textSize="20sp" /><Buttonandroid:id="@+id/btn_sp"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="onClickSP"android:text="SharedPreference存储" /><Buttonandroid:id="@+id/btn_file_inner"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="onClickIF"android:text="内部文件存储" /><Buttonandroid:id="@+id/btn_file_OF"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="外部文件存储" /><Buttonandroid:id="@+id/btn_DB"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="数据库存储" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="onClickNW"android:text="网络存储存储" /></LinearLayout>

SPTestActivity.java

package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class SPTestActivity extends AppCompatActivity {EditText et_sp_key;EditText et_sp_value;SharedPreferences sp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sptest);sp=this.getSharedPreferences("igeek", Context.MODE_PRIVATE);et_sp_key=findViewById(R.id.et_sp_key);et_sp_value=findViewById(R.id.et_sp_value);Button btn_save=findViewById(R.id.btn_save);Button btn_read=findViewById(R.id.btn_read);btn_save.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//获取key和valueString key=et_sp_key.getText().toString();String value=et_sp_value.getText().toString();//获取editorSharedPreferences.Editor editor=sp.edit();editor.putString(key,value).commit();}});btn_read.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String key=et_sp_key.getText().toString();String value=sp.getString(key,"no data");Toast.makeText(SPTestActivity.this,value,Toast.LENGTH_LONG).show();}});}}

activity_sptest.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><EditTextandroid:id="@+id/et_sp_key"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="存储的key" /><EditTextandroid:id="@+id/et_sp_value"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="存储的value" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><Buttonandroid:id="@+id/btn_save"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="save"android:text="保 存" /><Buttonandroid:id="@+id/btn_read"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="read"android:text="读 取" /></LinearLayout></LinearLayout>

InnerFileActivity.java

package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;public class InnerFileActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_inner_file);}public void save(View view){//1.获取assets目录AssetManager manager=getAssets();InputStream Is=null;FileOutputStream fileOutputStream=null;//2.获取文件try {Is=manager.open("logo.png");//3.设置保存路径fileOutputStream=openFileOutput("logo.png", Context.MODE_PRIVATE);//4.保存数据byte [] buffer=new byte[1024];int len=-1;while ((len=Is.read(buffer))!=-1){fileOutputStream.write(buffer,0,len);}Is.close();fileOutputStream.close();Toast.makeText(InnerFileActivity.this,"保存完成",Toast.LENGTH_LONG).show();} catch (IOException e) {e.printStackTrace();}}public void read(View view){//1.获取文件路径String dirPath=getFilesDir().getAbsolutePath();String filePath=dirPath+"/logo.png";//2.读取加载图片文件,得到Bitmap对象Bitmap bitmap= BitmapFactory.decodeFile(filePath);//3.把图片加载到image控件ImageView imageView=findViewById(R.id.iv_if);imageView.setImageBitmap(bitmap);}
}

activity_inner_file.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/textView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="5dp"android:text="1. 将asserts下的logo.png保存到手机内部\n2. 读取手机内部图片文件显示"android:textColor="#ff0000"android:textSize="15sp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="save"android:text="保 存" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="read"android:text="读 取" /></LinearLayout><ImageViewandroid:id="@+id/iv_if"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/ic_launcher" /></LinearLayout>

OfActivity.java

package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;public class OfActivity extends AppCompatActivity {private EditText et_of_name;private EditText et_of_content;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_of);et_of_name = findViewById(R.id.et_of_name);et_of_content = findViewById(R.id.et_of_content);}//保存public void  save(View view) throws IOException {//1.判断sd卡是否挂载if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//2.读取页面输入的内容String filename = et_of_name.getText().toString();String content = et_of_content.getText().toString();//3.获取sd卡路径String filespath = getExternalFilesDir(null).getAbsolutePath();String filepath = filespath+"/"+filename;//4.输出数据FileOutputStream fos = new FileOutputStream(filepath);fos.write(content.getBytes("utf-8"));//5.提示Toast.makeText(this, "保存完成", Toast.LENGTH_SHORT).show();}else{Toast.makeText(this, "SD卡没有挂载", Toast.LENGTH_SHORT).show();}}//读取public void read(View view) throws IOException {//1.判断sd卡是否挂载if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){String filename = et_of_name.getText().toString();//2.获取sd卡路径String filespath = getExternalFilesDir(null).getAbsolutePath();String filepath = filespath+"/"+filename;//3.读取内容FileInputStream fis = new FileInputStream(filepath);//读取数据,转换成stringByteArrayOutputStream  baos = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = -1;while((len=fis.read(buffer))!=-1){baos.write(buffer,0,len);}String content = baos.toString();//4.显示et_of_content.setText(content);}else{Toast.makeText(this, "SD卡没有挂载", Toast.LENGTH_SHORT).show();}}
}

activity_of.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><EditTextandroid:id="@+id/et_of_name"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="存储的文件名" /><EditTextandroid:id="@+id/et_of_content"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="存储的文件内容" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="save"android:text="保 存" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="read"android:text="读 取" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="save2"android:text="保 存2" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="read2"android:text="读 取2" /></LinearLayout></LinearLayout>

DbActivity.java

package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;public class DbActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_db);}//建库:public void testCreateDB(View view){DBHelper dbHelper=new DBHelper(this,1);SQLiteDatabase database =dbHelper.getReadableDatabase();Toast.makeText(this, "创建数据库成功", Toast.LENGTH_LONG).show();}/** 更新库*/public void testUpdateDB(View v) {DBHelper dbHelper = new DBHelper(this, 2);//获取连接SQLiteDatabase database = dbHelper.getReadableDatabase();Toast.makeText(this, "更新数据库", Toast.LENGTH_LONG).show();}/** 添加记录*/public void testInsert(View v) {//1. 得到连接DBHelper dbHelper = new DBHelper(this, 2);SQLiteDatabase database = dbHelper.getReadableDatabase();//2. 执行insert  insert into person(name, age) values('Tom', 12)ContentValues values = new ContentValues();values.put("name", "Tom");values.put("age", 20);long id = database.insert("person", null, values);//3. 关闭database.close();//4. 提示Toast.makeText(this, "id="+id, Toast.LENGTH_LONG).show();}/** 更新*/public void testUpdate(View v) {DBHelper dbHelper = new DBHelper(this, 2);SQLiteDatabase database = dbHelper.getReadableDatabase();//执行update  update person set name=Jack, age=13 where _id=4ContentValues values = new ContentValues();values.put("name", "jack");values.put("age", 13);int updateCount = database.update("person", values , "_id=?", new String[]{"4"});database.close();Toast.makeText(this, "updateCount="+updateCount, Toast.LENGTH_LONG).show();}/** 删除*/public void testDelete(View v) {// 1. 得到连接DBHelper dbHelper = new DBHelper(this, 2);SQLiteDatabase database = dbHelper.getReadableDatabase();// 2. 执行delete delete from person where _id=2int deleteCount = database.delete("person", "_id=2", null);// 3. 关闭database.close();// 4. 提示Toast.makeText(this, "deleteCount=" + deleteCount, Toast.LENGTH_LONG).show();}/** 查询*/public void testQuery(View v) {// 1. 得到连接DBHelper dbHelper = new DBHelper(this, 2);SQLiteDatabase database = dbHelper.getReadableDatabase();// 2. 执行query select * from personCursor cursor = database.query("person", null, null, null, null, null, null);//cursor = database.query("person", null, "_id=?", new String[]{"3"}, null, null, null);//得到匹配的总记录数int count = cursor.getCount();//取出cursor中所有的数据while(cursor.moveToNext()) {//_idint id = cursor.getInt(0);//nameString name = cursor.getString(1);//ageint age = cursor.getInt(cursor.getColumnIndex("age"));Log.e("TAG", id+"-"+name+"-"+age);}// 3. 关闭cursor.close();database.close();// 4. 提示Toast.makeText(this, "count=" + count, Toast.LENGTH_LONG).show();}}

activity_db.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testCreateDB"android:text="Create DB" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testUpdateDB"android:text="Update DB" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testInsert"android:text="Insert" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testUpdate"android:text="Update" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testDelete"android:text="Delete" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testQuery"android:text="query" /><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="testTransaction"android:text="Test Transaction" /></LinearLayout>

DBHelper.java

package com.kanxue.school_test_1;import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;import androidx.annotation.Nullable;public class DBHelper extends SQLiteOpenHelper {public DBHelper(@Nullable Context context, int version) {super(context, "igeek.db", null, version);}@Overridepublic void onCreate(SQLiteDatabase db) {Log.e("DBHelper","DBHelper onCreate");String sql = "create table person(_id integer primary key autoincrement,name varchar,age int)";db.execSQL(sql);//插入数据db.execSQL("insert into person (name,age) values ('tom1',11)");db.execSQL("insert into person (name,age) values ('tom2',12)");db.execSQL("insert into person (name,age) values ('tom3',13)");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {Log.e("DBHelper","DBHelper onUpgrade");}
}

NetworkActivity.java

package com.kanxue.school_test_1;import androidx.appcompat.app.AppCompatActivity;import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;public class NetworkActivity extends AppCompatActivity {EditText et_url;EditText et_network_result;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_network);et_url=findViewById(R.id.et_network_url);et_network_result=findViewById(R.id.et_network_result);}public void testConnectionPost(View view){//1.显示进度条final ProgressDialog dialog = ProgressDialog.show(this,null,"正在请求中...");//2.启动分线程new Thread(){@Overridepublic void run() {try{//3.获取网络请求地址String path = et_url.getText().toString();//4.创建URL对象URL url = new URL(path);//5.打开链接HttpURLConnection connection = (HttpURLConnection) url.openConnection();//6.设置请求方式、连接超时,读取超时connection.setRequestMethod("POST");connection.setConnectTimeout(5000);connection.setReadTimeout(6000);//7.连接服务器connection.connect();//获取请求的输出流,添加post请求参数OutputStream os = connection.getOutputStream();String data = "name=jack&age=20";os.write(data.getBytes("utf-8"));//8.发送请求,获取返回代码int responseCode = connection.getResponseCode();if(responseCode == 200){//获取内容InputStream is = connection.getInputStream();//读取数据,转换成stringByteArrayOutputStream baos = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = -1;while((len=is.read(buffer))!=-1){baos.write(buffer,0,len);}final String content = baos.toString();baos.close();is.close();//9.在主线程中更新数据,移除dialogrunOnUiThread(new Runnable() {@Overridepublic void run() {et_network_result.setText(content);dialog.dismiss();}});}}catch(Exception e){e.printStackTrace();dialog.dismiss();}}}.start();}public void testConnectionGet(View view){//1.显示进度条final ProgressDialog dialog = ProgressDialog.show(this,null,"正在请求中...");//2.启动分线程:new Thread(new Runnable() {@Overridepublic void run() {String path=et_url.getText().toString();try {URL url=new URL(path);//打开链接HttpURLConnection httpURLConnection =(HttpURLConnection)url.openConnection();//请求方式httpURLConnection.setRequestMethod("GET");httpURLConnection.setConnectTimeout(5000);httpURLConnection.setReadTimeout(5000);//连接httpURLConnection.connect();int responseCode=httpURLConnection.getResponseCode();if(responseCode==200){//请求成功InputStream is=httpURLConnection.getInputStream();ByteArrayOutputStream baos=new ByteArrayOutputStream();byte [] buffer= new byte[1024];int len = -1;while((len=is.read(buffer))!=-1){baos.write(buffer,0,len);}final String content = baos.toString();baos.close();is.close();runOnUiThread(new Runnable() {@Overridepublic void run() {et_network_result.setText(content);dialog.dismiss();}});}} catch (Exception e) {dialog.dismiss();e.printStackTrace();}}}).start();}
}

activity_network.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical" ><EditTextandroid:id="@+id/et_network_url"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="textUri"android:text="http://10.141.6.88:8080/android_web_war_exploded/tas" ></EditText><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="1. 测试HttpUrlConnection"android:textSize="20dp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testConnectionGet"android:text="GET请求" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testConnectionPost"android:text="POST请求" /></LinearLayout><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="2. 测试HttpClient"android:textSize="20dp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testClientGet"android:text="GET请求" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testClientPost"android:text="POST请求" /></LinearLayout><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="3. 测试Volley框架"android:textSize="20dp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testVolleyGet"android:text="GET请求" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:onClick="testVolleyPost"android:text="POST请求" /></LinearLayout><EditTextandroid:id="@+id/et_network_result"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:hint="用来显示网络请求返回的结果数据" ></EditText></LinearLayout>

androidstuido_schooltest_7_storage相关推荐

最新文章

  1. 重做日志文件(redo log file)和归档日志文件(archive log file)
  2. STORM_0001_用vmware拷贝出三个相同的ubuntu搭建小的zookeeper集群
  3. Spring3.2.4集成quartz2.2.1定时任务(demo).
  4. 开发简化版NgFor
  5. 分割字符串s使得每个子串都是回文串
  6. 【AI专利】中国成为全球AI专利第二大提交国,微软AI专利数比你论文字数都多...
  7. Spring Boot源码:SpringBootExceptionReporter
  8. Laravel 5 测试用例 记录
  9. java取余位运算_Java中对于位运算的优化以及运用与思考
  10. php开源路由器,路由 - Symfony开源 - Symfony中国
  11. java设计模式--创建模式--单例模式
  12. 区块链技术指南pdf
  13. 关键词组合工具_凭技术做外贸:关键词优化的高效工具推荐
  14. UWB人员定位解决方案
  15. 摸底10余家一线互联网公司大数据架构图:Hadoop渗透力太强!
  16. model.most_similar
  17. SQL中OVER(PARTITION BY)详解
  18. 股权投资模型-CAPM模型和PEG模型(内附示例数据)
  19. go 学习笔记之学习函数式编程前不要忘了函数基础
  20. 2021金三银四Java面试突击集锦

热门文章

  1. pdf常用字体包 -baijiahao_PDF 的各种操作,我用 Python 来实现(附网站和操作指导)
  2. node mysql 多个_使用Node.js处理多个MySQL查询
  3. 成功解决Fit Failed Warning: Estimator fit failed. The score on this train-test partition for these param
  4. 成功解决TypeError: tuple indices must be integers or slices, not str
  5. Laravel中一些要记住 的写法
  6. AtCoder Regular Contest 092 Two Sequences AtCoder - 3943 (二进制+二分)
  7. Net.Core导入EXCel文件里的数据
  8. Linux中的各种软件安装
  9. Android ContentProvider、ContentResolver和ContentObserver的使用
  10. 关于微信支付冲突的问题