I try to create a text file to save my options but when I launch the creation of the file, I get an error: Stream Closed.
My class file :
My class Activity :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 public class SettingsFile { private Settings settings; private File file; public SettingsFile(Settings settings, File file) { this.settings = settings; this.file = new File(file, "options.txt"); loadOptions(); } public void loadOptions() { try { if(!file.exists()) { saveOptions(); } BufferedReader reader = new BufferedReader(new FileReader(this.file)); String s = ""; while((s = reader.readLine()) != null) { try { String[] content = s.split(":"); if(content[0].equals("PLAYER1")) { Settings_enum.PLAYER1.setString_value(content[1]); } if(content[0].equals("PLAYER2")) { Settings_enum.PLAYER2.setString_value(content[1]); } } catch (Exception e) { System.err.println("[FILE ERROR1]" + e); } reader.close(); } } catch (Exception e) { System.err.println("[FILE ERROR2]" + e); } } public void saveOptions() { try { PrintWriter print = new PrintWriter(new FileWriter(this.file)); print.println("Settings File"); print.println("PLAYER1:" + Settings_enum.PLAYER1.getString_value()); print.println("PLAYER2:" + Settings_enum.PLAYER2.getString_value()); print.close(); } catch(Exception e) { System.err.println("[FILE ERROR3]" + e); } } }
My class EnumOptions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 public class Settings extends AppCompatActivity { public ImageButton close; public Button valid_button1; public SettingsFile settingsFile; public File DataDir; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings); this.settingsFile = new SettingsFile(this, getExternalCacheDir()); this.close = findViewById(R.id.close2); this.valid_button1 = findViewById(R.id.valid_button1); close.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Settings_enum player1 = Settings_enum.PLAYER1; Settings_enum player2 = Settings_enum.PLAYER2; System.out.println(player1.getString_value()); System.out.println(player2.getString_value()); settingsFile.saveOptions(); Intent otherActivity = new Intent(getApplicationContext(), MainActivity.class); startActivity(otherActivity); finish(); } }); valid_button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { EditText champ_1 = findViewById(R.id.champ_joueur1); EditText champ_2 = findViewById(R.id.champ_joueur2); String val1 = champ_1.getText().toString(); String val2 = champ_2.getText().toString(); Settings_enum player1 = Settings_enum.PLAYER1; Settings_enum player2 = Settings_enum.PLAYER2; player1.setString_value(val1); player2.setString_value(val2); System.out.println(player1.getString_value()); System.out.println(player2.getString_value()); settingsFile.saveOptions(); } }); }
If someone finds a solution I am interested! Thank you
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 public enum Settings_enum { PLAYER1("Joueur 1"), PLAYER2("Joueur 2"); private String string_value; private int int_value; private boolean boolean_value; Settings_enum(String str){ this.string_value = str; } Settings_enum(int int_value){ this.int_value = int_value; } Settings_enum(boolean boolean_value){ this.boolean_value = boolean_value; } public void setString_value(String string_value) { this.string_value = string_value; } public String getString_value() { return string_value; } public void setInt_value(int int_value) { this.int_value = int_value; } public int getInt_value() { return int_value; } public void setBoolean_value(boolean boolean_value) { this.boolean_value = boolean_value; } public boolean isBoolean_value() { return boolean_value; } }![]()
Partager