Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
File Java中的StringBuilder编码_File_Encoding_Stringbuilder_Fileinputstream - Fatal编程技术网

File Java中的StringBuilder编码

File Java中的StringBuilder编码,file,encoding,stringbuilder,fileinputstream,File,Encoding,Stringbuilder,Fileinputstream,我有一个方法,从sdcard(Android)加载文件,然后用StringBuilder读取。我正在读的文本是用我的母语字符写的,如ąśćźż。。。 很遗憾,StringBuilder(或FileInputStream)无法正确读取它们。如何设置正确的编码 代码如下: File file = new File(filePath); FileInputStream fis = null; StringBuilder builder = new Str

我有一个方法,从sdcard(Android)加载文件,然后用StringBuilder读取。我正在读的文本是用我的母语字符写的,如ąśćźż。。。 很遗憾,StringBuilder(或FileInputStream)无法正确读取它们。如何设置正确的编码

代码如下:

File file = new File(filePath);
            FileInputStream fis = null;
            StringBuilder builder = new StringBuilder();

            try {
                fis = new FileInputStream(file);
                int content;
                while ((content = fis.read()) != -1) {
                    builder.append((char) content);
                }

            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (fis != null)
                        fis.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
            System.out.println("File Contents = " + builder.toString());
            contactService.updateContacts(builder.toString());

例如,您可以尝试将InputStreamReader与BufferedReader结合使用,这将实现以下功能:

InputStreamReader inputStreamReader = new InputStreamReader((InputStream)fis, "UTF-8");
BufferedReader br = new BufferedReader(inputStreamReader);
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
    sb.append(line);
}                   
只要,
Tom

第行:BufferedReader br=新的BufferedReader(inputStreamReader,“UTF-8”);我得到一个错误,我应该删除“UTF-8”以匹配BufferedReader构造函数。这是确定的:BufferedReader br=new BufferedReader(new InputStreamReader((InputStream)fis,“UTF-8”);正确的!对不起,我更正了。InputStreamReader是设置编码的对象!