我正在编写这个记事本应用程序,用户在其中输入他们想要的内容EditText
,然后将write
其写入文件,然后他们可以read
在TextView
.
这是我XML
正在使用的 EditText 的代码:
<EditText
android:id="@+id/txtWrite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/btnLogOut"
android:layout_marginTop="42dp"
android:layout_toLeftOf="@+id/btnAppendd"
android:ems="5"
android:imeOptions="flagNoExtractUi"
android:inputType="textMultiLine"
android:maxLength="2147483646" />
这max length
条线是我试图修复它,因为我认为这对用户来说已经足够了input
。但是,它不起作用。
当我显示length
文件时,它说它是 1024,考虑到我如何input
从文件中获取数据,这是有道理的:
try {
char[] inputBuffer = new char[1024];
FileInputStream fIn = openFileInput("txt");
InputStreamReader isr = new InputStreamReader(fIn);
isr.read(inputBuffer);
String data = new String(inputBuffer);
isr.close(); fIn.close();
display.setText(data + '\n' + '\n' + data.length()); // data + 1024
}catch(Exception e){}
这就是我输入所有文件的方式(谷歌搜索),所以我认为这new char[1024]
是max length
文件只能是 1024 的原因。
有谁知道另一种输入无限长度文件的方法?我什至不知道为什么必须这样new char[1024]
。
这是我如何归档write
文件,这很好,因为它是短代码:
FileOutputStream fos = openFileOutput("txt", Context.MODE_PRIVATE);
fos.write(...);
fos.close();
这是我的完整write
方法:
public void write()
{
Button write = (Button)findViewById(R.id.btnWrite);
write.setOnClickListener (new View.OnClickListener()
{
public void onClick(View v)
{
EditText writeText = (EditText)findViewById(R.id.txtWrite);
try {
FileOutputStream fos = openFileOutput("txt", Context.MODE_PRIVATE);
fos.write(writeText.getText().toString().getBytes());
fos.close();
} catch(Exception e) {}
}
});
}