Я сохраняю файл JSON в личном каталоге на Android. Проблема в том, что когда я читаю файл, текст дополняется странными символами в конце, и я не уверен, почему это происходит.Странные символы при чтении файла на Android
Вход:
Е/ПИСЬМЕННЫЙ (25254): { "пол": "мужской", "activity_factor": 1.2, "вес": 0, "высота": 180,0,» weight_loss_goal ": 0," возраст ": 30}
Е/StartActivity (25254): Relaunch 07-03
Е/ЧТЕНИЕ (25254): {" пол ":" мужскими», "activity_factor" : 1.2, "вес": 0, "высота": 180,0, "weight_loss_goal": 0, "возраст": 30} ??????????????????????? ?????????????????????????????????????????????? ??????????????????????? .. (это продолжается и дальше и дальше)
FileWrite I/O код:
public class FileUtil
{
public static void writeToFile (Context context, String filename, String text, int mode) throws IOException
{
FileOutputStream fos = null;
try
{
fos = context.openFileOutput (filename, mode);
fos.write (text.getBytes());
Log.e("WRITTEN",text);
}
catch (FileNotFoundException e)
{
throw e;
}
catch (IOException e)
{
throw e;
}
finally
{
if (fos != null)
{
try
{
fos.close();
}
catch (IOException e)
{
}
}
}
}
public static String readFromFile (Context context, String fileName) throws IOException
{
FileInputStream fis = null;
StringBuilder content = new StringBuilder ("");
try
{
byte [] buffer = new byte [1024];
fis = context.openFileInput (fileName);
while (fis.read (buffer) != -1)
{
content.append (new String (buffer));
}
}
catch (FileNotFoundException e)
{
throw e;
}
catch (IOException e)
{
throw e;
}
finally
{
if (fis != null)
{
try
{
fis.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Log.e("READ",content.toString());
return content.toString();
}
}
Ну что это за «режим» в этом случае? И файл существовал заранее? Плохая идея использовать String.getBytes без указания кодировки, между прочим. –
Попробуйте использовать 'text.getBytes (« UTF-8 »)' и 'new String (buffer,« UTF-8 »)'. –
Я не знал этого, я следил за примером на странице разработчика Android. Несмотря на это, он все еще не работает. –