Java 只能读写一行

Java 只能读写一行,java,android,input,local-storage,fileoutputstream,Java,Android,Input,Local Storage,Fileoutputstream,程序运行良好,但我不明白为什么它只能读写一行。它应该能够写入多行并将其读入textview。我对它进行了设置,这样当用户单击“添加”时,它会自动读取到textview中 public class MainActivity extends AppCompatActivity { EditText Activity, Miles, Date; TextView Log; @Override protected void onCreate(Bundle savedInstanceState) {

程序运行良好,但我不明白为什么它只能读写一行。它应该能够写入多行并将其读入textview。我对它进行了设置,这样当用户单击“添加”时,它会自动读取到textview中

public class MainActivity extends AppCompatActivity {
EditText Activity, Miles, Date;
TextView Log;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Activity = (EditText)(findViewById(R.id.editText));
    Miles = (EditText)(findViewById(R.id.editText2));
    Date = (EditText)(findViewById(R.id.editText3));
    Log = (TextView)(findViewById(R.id.textView));
}
public void Add(View view)
{
    String Myactivity = Activity.getText().toString() + "\t" +   Miles.getText().toString() + "\t" + Date.getText().toString();
    try {
        FileOutputStream fileOutputStream =  openFileOutput("myActivities.txt", MODE_PRIVATE);
        fileOutputStream.write(Myactivity.getBytes());
        fileOutputStream.close();
        Toast.makeText(getApplicationContext(), "Activty Added", Toast.LENGTH_LONG);
        FileInputStream fileInputStream = openFileInput("myActivities.txt");
        InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        StringBuffer stringBuffer = new StringBuffer();
        String action;
        while((action = bufferedReader.readLine())!= null)
        {
            stringBuffer.append(action + "\n");
        }
        Log.setText(stringBuffer.toString());

    } catch (FileNotFoundException e)
    {
        e.printStackTrace();
        Toast.makeText(getApplicationContext(), "Fail", Toast.LENGTH_LONG);
    } catch (IOException e)
    {
        e.printStackTrace();
        Toast.makeText(getApplicationContext(), "Fail", Toast.LENGTH_LONG);
    }


}
}


将其添加到
文本视图中

   android:maxLines="100"
在您的代码中:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Text"
    android:id="@+id/textView"
    android:layout_below="@+id/button"
    android:maxLines="100" <!-- add android:maxLines to specify the number of lines in textview -->
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentStart="true" />
    while((action = bufferedReader.readLine())!= null)
    {
        Log.setText(Log.getText() + action + "\n");
    }

将此添加到
textview
xml中

   android:maxLines="100"
在您的代码中:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Text"
    android:id="@+id/textView"
    android:layout_below="@+id/button"
    android:maxLines="100" <!-- add android:maxLines to specify the number of lines in textview -->
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentStart="true" />
    while((action = bufferedReader.readLine())!= null)
    {
        Log.setText(Log.getText() + action + "\n");
    }

编辑您的问题并显示布局.activity\u main.xml文件编辑您的问题并显示布局.activity\u main.xml文件添加了该文件,但它仍将当前行替换为新行。不添加其他行我更新了我的答案,请检查此项,对MESAT代码的响应不起作用。然而,它给了我一个想法:stringBuffer.append(Log.getText().toString()+action+“\n”);这很好用是的。android:maxLines=“100”真的很神奇。因为它允许textview显示多行。添加了这一点,但仍将当前行替换为新行。不添加其他行我更新了我的答案,请检查此项,对MESAT代码的响应不起作用。然而,它给了我一个想法:stringBuffer.append(Log.getText().toString()+action+“\n”);这很好用是的。android:maxLines=“100”真的很神奇。因为它允许textview显示多行。