first of all i need to create text file in internal storage(if file does not exists) and then to read values line by line into array. I do not understand what i do wrong, why my reading from internal memory is not detecting my file and how should i fix that? (I suppose creating file and writing to it is correct)
How i want my data file to look like:
data
data
data
data
data
data
How I write values to file:
FileOutputStream fOut = null;
try {
fOut = openFileOutput("VilniusWeatherVU.txt",MODE_WORLD_READABLE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
String v33 = "data";
String v12 = "data";
String v3 = "data";
String v11 = "data";
String v6 = "data";
String v1 = "data";
try {
fOut.write(v33.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
try {
fOut.write(v12.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
try {
fOut.write(v3.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
try {
fOut.write(v11.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
try {
fOut.write(v6.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
try {
fOut.write(v1.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
try {
fOut.close();
} catch (IOException e) {
e.printStackTrace();
}
How i read values:
String[] array = new String[6];
int index = 0;
try{
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream("VilniusWeatherVU.txt");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Print the content on the console
//System.out.println (strLine);
array[index]=strLine;
index++;
}
//Close the input stream
in.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
How i check my array:
for (int i = 0; i <6; i++){
Log.v(LOG_TAG, "CHECK IF IT WORKED " + array[i]);
}
What my logcat says:
11-24 16:06:56.886 359-359/app.sunshine.android.example.com.sunshine W/System.err﹕ Error: /VilniusWeatherVU.txt (No such file or directory)
11-24 16:06:56.895 359-359/app.sunshine.android.example.com.sunshine V/MyNewMain﹕ CHECK IF IT WORKED null
11-24 16:06:56.895 359-359/app.sunshine.android.example.com.sunshine V/MyNewMain﹕ CHECK IF IT WORKED null
11-24 16:06:56.895 359-359/app.sunshine.android.example.com.sunshine V/MyNewMain﹕ CHECK IF IT WORKED null
11-24 16:06:56.895 359-359/app.sunshine.android.example.com.sunshine V/MyNewMain﹕ CHECK IF IT WORKED null
11-24 16:06:56.895 359-359/app.sunshine.android.example.com.sunshine V/MyNewMain﹕ CHECK IF IT WORKED null
11-24 16:06:56.895 359-359/app.sunshine.android.example.com.sunshine V/MyNewMain﹕ CHECK IF IT WORKED null
please don't leave me alone on this one :(
Frunk requested:
i attempt to read from file in a different way:
FileInputStream fin = null;
try {
fin = openFileInput("VilniusWeatherVU.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
int c;
String temp="";
try {
while( (c = fin.read()) != -1){
temp = temp + Character.toString((char)c);
}
} catch (IOException e) {
e.printStackTrace();
}
//string temp contains all the data of the file.
try {
fin.close();
} catch (IOException e) {
e.printStackTrace();
}
then i use logcat to check:
Log.v(LOG_TAG, "CHECK IF IT WORKED " + temp);
and what i get is:
11-24 16:24:38.345 334-334/app.sunshine.android.example.com.sunshine V/MyNewMain﹕ CHECK IF IT WORKED datadatadatadatadatadata