Я пытаюсь открыть .txt-файл и писать непрерывно каждые 10 миллисекунд в файл с помощью scheduleFixedRate.Написание непрерывно в файл в студии android
При выполнении файла я получаю сообщение с указанием на улове (при отладке), что:
java.io.FileNotFoundException: /storage/emulated/0/test.txt (доступ запрещен).
Я добавил разрешение на запись во внешнюю память. Файл не создается.
При выполнении попытки после outputstream = new FileOutputStream (file1);
элемент управления показывает сообщение из вышеперечисленного.
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
Button bt1;
TextView text;
Timer timer = new Timer();
File file1 = new File (Environment.getExternalStorageDirectory(), "Test.txt");
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
final Button bt1 = (Button) findViewById (R.id.button);
final TextView text = (TextView) findViewById (R.id.textView);
assert bt1 != null;
bt1.setText ("Start");
bt1.setOnClickListener (new View.OnClickListener() {
@Override
public void onClick (View v) {
if (bt1.getText().equals ("Stop")) {
bt1.setText ("Start");
} else {
bt1.setText ("Stop");
timer.scheduleAtFixedRate (task, 10, 10);
}
}
});
}
TimerTask task = new TimerTask() {
@Override
public void run() {
writetime();
}
};
public void writetime() {
FileOutputStream outputstream;
try {
outputstream = new FileOutputStream (file1);
OutputStreamWriter oswriter = new OutputStreamWriter (outputstream);
BufferedWriter bwriter = new BufferedWriter (oswriter);
bwriter.append ("Repetition");
bwriter.newLine();
bwriter.close();
outputstream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
manifest.xml файл
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.kolla.usingtimer">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Вы запускаете это на определенном устройстве или в эмуляторе? – Ivan
Я проверил устройство, но файл никогда не создается. – kolla
Не могли бы вы поделиться своим файлом манифеста здесь? – Ivan