Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio:从内部存储读取解码问题_Android_Fileinputstream_Internal Storage_Android Internal Storage - Fatal编程技术网

Android Studio:从内部存储读取解码问题

Android Studio:从内部存储读取解码问题,android,fileinputstream,internal-storage,android-internal-storage,Android,Fileinputstream,Internal Storage,Android Internal Storage,我在为我正在制作的Android应用程序读取Android Studio中的内部存储文件时遇到问题。我有一个应用程序,它有一个edittext,用户可以输入文本。然后,单击一个按钮,我将此文本保存在内部存储器中以备将来使用 但是,当我将文件从内部存储器加载回edittext时,我使用的过程会将某些字符(***尤其是英语以外的语言)更改为奇数符号。例如,如果我使用俄语文本输入、保存文件并尝试加载它,它将是一堆混乱的符号和字母 以下是保存到内部存储器的代码: String c

我在为我正在制作的Android应用程序读取Android Studio中的内部存储文件时遇到问题。我有一个应用程序,它有一个edittext,用户可以输入文本。然后,单击一个按钮,我将此文本保存在内部存储器中以备将来使用

但是,当我将文件从内部存储器加载回edittext时,我使用的过程会将某些字符(***尤其是英语以外的语言)更改为奇数符号。例如,如果我使用俄语文本输入、保存文件并尝试加载它,它将是一堆混乱的符号和字母

以下是保存到内部存储器的代码:

            String codeData = htmlCode.getText().toString();

            try {
                FileOutputStream fileOutputStream = getActivity().openFileOutput("MyFile.html", getActivity().MODE_PRIVATE);
                //byte[] bytes = htmlCode.getText().toString().getBytes("UTF-8");
                fileOutputStream.write(codeData.getBytes("UTF-32"));
                fileOutputStream.close();
            } catch (Exception e) {

            }
        String putThisStringinEditText = "";

        try {

            FileInputStream fileInputStream = getActivity().openFileInput("MyFile.html");

            int c;
            String temp = "";
            while ((c = fileInputStream.read()) != -1) {
                temp = temp + Character.toString((char)c);

            }

            putThisStringinEditText = temp;

        } catch (Exception e) {

        }
以下是从内部存储器加载的代码:

            String codeData = htmlCode.getText().toString();

            try {
                FileOutputStream fileOutputStream = getActivity().openFileOutput("MyFile.html", getActivity().MODE_PRIVATE);
                //byte[] bytes = htmlCode.getText().toString().getBytes("UTF-8");
                fileOutputStream.write(codeData.getBytes("UTF-32"));
                fileOutputStream.close();
            } catch (Exception e) {

            }
        String putThisStringinEditText = "";

        try {

            FileInputStream fileInputStream = getActivity().openFileInput("MyFile.html");

            int c;
            String temp = "";
            while ((c = fileInputStream.read()) != -1) {
                temp = temp + Character.toString((char)c);

            }

            putThisStringinEditText = temp;

        } catch (Exception e) {

        }

另外,请注意***我知道问题不在于保存文件,因为我有其他测试方法,并且我已经确定问题源于加载文件

不,问题是您保存了文件utf-32,但在加载时没有使用utf-32。为什么要保存文件utf-32?最好使用.writeLine()和.readLine()。