Android工作室,打开一个文件,连续写入然后关闭
Android studio, open a file , continuously write and then close
我有每秒生成数据并显示在屏幕上的代码。
这一切都很好,但我想创建一个包含所有数据的日志文件,以便稍后分析。
每次创建数据时我都可以 open/write/close 一个文件,但我不确定它使用了多少处理能力,因为它不断打开和关闭文件
String data= reading1","+reading2+","+time +"/n";
try {
FileOutputStream out = openFileOutput("data.csv", Context.MODE_PRIVATE);
out.write(data.getBytes());
out.close();
} catch (Exception e) {
e.printStackTrace();
我希望在单击开始按钮时打开文件。
if ( v.getId() == R.id.start ){
// checks which button is clicked
Log.d("dennis", "Scan working"); //logs the text
// open a file
try {
FileOutputStream out = openFileOutput("data.csv", Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
但是在关闭文件时,当输入 out 时,没有出现 .close() 的选项
if ( v.getId() == R.id.stop ){
// checks which button is clicked
out. // no valid options appear
messageValue.setText(R.string.stopButtonText);// changes the hallo world text
readNoRead=false;
}
所有open/write/close需要在一起还是可以
***open file***
-----
Cycle through all the data
-----
***Close file***
完全可以在不关闭文件的情况下一次打开、处理和关闭一个文件。
您的 out
变量未显示任何方法建议,因为它尚未在该块中定义。更改行
FileOutputStream out = openFileOutput("data.csv", CONTEXT.MODE_PRIVATE);
到
out = openFileOutput("data.csv", CONTEXT.MODE_PRIVATE);
然后将 FileOutputStream out;
添加到第一个 if
语句上方的一行(块外)。
您可能还想查看 'try-catch-finally' 或 'try with resources' 作为在 try-catch 块中关闭文件的选项。
您应该将 link 存储到 FileOutputStream
的顶层 class。
您的代码示例:
FileOutputStream out;
void clickStart() {
if (v.getId() == R.id.start){
// checks which button is clicked
Log.d("dennis", "Scan working"); //logs the text
// open a file
try {
out = openFileOutput("data.csv", Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
void writeData() {
String data= reading1+","+reading2+","+time +"/n";
try {
out.write(data.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
void clickStop() {
if (v.getId() == R.id.stop) {
try {
out.close();
} catch(IOException e) {
e.printStackTrace();
}
messageValue.setText(R.string.stopButtonText);// changes the hello world text
readNoRead=false;
}
}
我有每秒生成数据并显示在屏幕上的代码。 这一切都很好,但我想创建一个包含所有数据的日志文件,以便稍后分析。
每次创建数据时我都可以 open/write/close 一个文件,但我不确定它使用了多少处理能力,因为它不断打开和关闭文件
String data= reading1","+reading2+","+time +"/n";
try {
FileOutputStream out = openFileOutput("data.csv", Context.MODE_PRIVATE);
out.write(data.getBytes());
out.close();
} catch (Exception e) {
e.printStackTrace();
我希望在单击开始按钮时打开文件。
if ( v.getId() == R.id.start ){
// checks which button is clicked
Log.d("dennis", "Scan working"); //logs the text
// open a file
try {
FileOutputStream out = openFileOutput("data.csv", Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
但是在关闭文件时,当输入 out 时,没有出现 .close() 的选项
if ( v.getId() == R.id.stop ){
// checks which button is clicked
out. // no valid options appear
messageValue.setText(R.string.stopButtonText);// changes the hallo world text
readNoRead=false;
}
所有open/write/close需要在一起还是可以
***open file***
-----
Cycle through all the data
-----
***Close file***
完全可以在不关闭文件的情况下一次打开、处理和关闭一个文件。
您的 out
变量未显示任何方法建议,因为它尚未在该块中定义。更改行
FileOutputStream out = openFileOutput("data.csv", CONTEXT.MODE_PRIVATE);
到
out = openFileOutput("data.csv", CONTEXT.MODE_PRIVATE);
然后将 FileOutputStream out;
添加到第一个 if
语句上方的一行(块外)。
您可能还想查看 'try-catch-finally' 或 'try with resources' 作为在 try-catch 块中关闭文件的选项。
您应该将 link 存储到 FileOutputStream
的顶层 class。
您的代码示例:
FileOutputStream out;
void clickStart() {
if (v.getId() == R.id.start){
// checks which button is clicked
Log.d("dennis", "Scan working"); //logs the text
// open a file
try {
out = openFileOutput("data.csv", Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
void writeData() {
String data= reading1+","+reading2+","+time +"/n";
try {
out.write(data.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
void clickStop() {
if (v.getId() == R.id.stop) {
try {
out.close();
} catch(IOException e) {
e.printStackTrace();
}
messageValue.setText(R.string.stopButtonText);// changes the hello world text
readNoRead=false;
}
}