亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

有沒有什么方法能在一個文件當中獲取兩組數據呢,

看完這個視頻自己做了個小demo發現獲取是能獲取到,但是數據被覆蓋了,最后得到的只有密碼的數據,

package?com.example.nete.myapplication;

import?android.os.Bundle;
import?android.support.v7.app.AppCompatActivity;
import?android.view.View;
import?android.widget.Button;
import?android.widget.EditText;
import?android.widget.TextView;
import?java.io.ByteArrayOutputStream;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.FileOutputStream;
import?java.io.IOException;

public?class?MainActivity?extends?AppCompatActivity?implements?View.OnClickListener?{
????private?EditText?usernameET;
????private?EditText?passwordET;
????private?Button?loginBT;
????private?TextView?nameTV;
????private?TextView?passTV;

????@Override
????protected?void?onCreate(Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.activity_main);
????????//初始化需要使用到的控件
????????loginBT?=?(Button)?findViewById(R.id.loginBT);
????????passwordET?=?(EditText)?findViewById(R.id.passwordET);
????????usernameET?=?(EditText)?findViewById(R.id.usernameET);
????????nameTV?=?(TextView)?findViewById(R.id.name);
????????passTV?=?(TextView)?findViewById(R.id.pass);
????????loginBT.setOnClickListener(this);

????}

????@Override
????public?void?onClick(View?view)?{
????????//最后獲取輸出框字符串
????????WriteFile(usernameET.getText().toString());
????????nameTV.setText("用戶名:"?+?ReadFile());
????????WriteFile(passwordET.getText().toString());
????????passTV.setText("密?碼:"?+?ReadFile());
????}


????public?void?WriteFile(String?content)?{
????????FileOutputStream?fos?=?null;
????????try?{
????????????fos?=?openFileOutput("login.txt",?MODE_PRIVATE);
????????????fos.write(content.getBytes());//寫入獲得到的用戶名密碼
????????????fos.close();
????????}?catch?(FileNotFoundException?e)?{
????????????e.printStackTrace();
????????}?catch?(IOException?e)?{
????????????e.printStackTrace();
????????}
????}


????public?String?ReadFile()?{???????
????????FileInputStream?fis?=?null;
????????ByteArrayOutputStream?baos?=?null;
????????//新建局部變量用于保存讀取到的數據
????????String?content?=?null;
????????byte[]?buffer?=?null;
????????try?{
????????????fis?=?openFileInput("login.txt");//獲取文件輸入流
????????????buffer?=?new?byte[1000];//定義一次讀取的字節數,不要太大
????????????baos?=?new?ByteArrayOutputStream();//定義用于存放數據的寫入內容
????????????int?len?=?0;
????????????//添加一個循環語句,當len==-1,就說明此時的數據已經讀取完畢
????????????while?((len?=?fis.read(buffer))?!=?-1)?{
????????????????baos.write(buffer,?0,?len);
????????????}
????????????content?=?baos.toString();?//將獲取到的數據傳到content
????????????fis.close();//關閉文件輸入流
????????????baos.close();

????????}?catch?(FileNotFoundException?e)?{
????????????e.printStackTrace();
????????}?catch?(IOException?e)?{
????????????e.printStackTrace();
????????}

????????return?content;
????}


}


正在回答

4 回答

?public?void?WriteFile(String?content)?{

????????FileOutputStream?fos?=?null;

????????try?{

????????????fos?=?openFileOutput("login.txt",?MODE_PRIVATE);

????????????fos.write(content.getBytes());//寫入獲得到的用戶名密碼

????????????fos.close();

????????}?catch?(FileNotFoundException?e)?{

????????????e.printStackTrace();

????????}?catch?(IOException?e)?{

????????????e.printStackTrace();

????????}

????}

寫入login.txt 文件后面的MODE_PRIVATE會將上一次寫的數據覆蓋,要添加MODE_APPEND

1 回復 有任何疑惑可以回復我~
#1

元素滴3579866 提問者

不行,那樣會把之前的數據也讀取出來
2016-09-02 回復 有任何疑惑可以回復我~
#2

qq_亮_4 回復 元素滴3579866 提問者

你想把數據怎么寫到文件中?又想怎么讀取怎樣的數據?
2016-09-02 回復 有任何疑惑可以回復我~
#3

元素滴3579866 提問者 回復 qq_亮_4

顯示密碼是用戶名+密碼,不能單純的得到密碼,我是想得到用戶名和密碼單獨的數據
2016-09-02 回復 有任何疑惑可以回復我~
#4

qq_亮_4 回復 元素滴3579866 提問者

顯示的密碼是用戶+密碼的話,你在用分割函數將他們分割,提取你要的密碼
2016-09-02 回復 有任何疑惑可以回復我~
#5

qq_亮_4 回復 元素滴3579866 提問者

用分割函數分割提取密碼
2016-09-02 回復 有任何疑惑可以回復我~
查看2條回復

使用兩個文件保存

username.txt保存用戶名

password.txt保存密碼

0 回復 有任何疑惑可以回復我~

思想就是以#號為分隔符進行切片,代碼你自己調了,可以的,我之前寫過

0 回復 有任何疑惑可以回復我~
#1

元素滴3579866 提問者

恩恩,我再試試,謝謝
2016-09-05 回復 有任何疑惑可以回復我~

樓上的是對的

0 回復 有任何疑惑可以回復我~
#1

元素滴3579866 提問者

不行,那樣會把之前的數據也讀取出來,就是會顯示密碼是用戶名+密碼,不能單純的得到密碼
2016-09-02 回復 有任何疑惑可以回復我~
#2

ziom 回復 元素滴3579866 提問者

用sharedpreferences
2016-09-02 回復 有任何疑惑可以回復我~
#3

null_xj 回復 元素滴3579866 提問者

1.使用sharedpreferences 2.如果你非要用文件,那就要進行分割,比如 寫的時候多寫一個# 以此為分隔符,對讀出的字符串用split進行切片即可
2016-09-05 回復 有任何疑惑可以回復我~
#4

元素滴3579866 提問者 回復 null_xj

sharedpreferences 我會用 ,分割還不會,之前用了split語句,結果都沒顯示出來
2016-09-05 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消
Android攻城獅的第二門課(第3季)
  • 參與學習       74894    人
  • 解答問題       444    個

手勢識別、數據存儲和4大組件,讓你牢牢掌握之前的基礎知識點

進入課程

有沒有什么方法能在一個文件當中獲取兩組數據呢,

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號