有沒有什么方法能在一個文件當中獲取兩組數據呢,
看完這個視頻自己做了個小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; ????} }
2016-09-01
?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
2016-11-10
使用兩個文件保存
username.txt保存用戶名
password.txt保存密碼
2016-09-05
思想就是以#號為分隔符進行切片,代碼你自己調了,可以的,我之前寫過
2016-09-02
樓上的是對的