我想出了這一段代碼與分隔符發出文本文件的每個塊,但弗里斯特發出字符串有雙問號之初,rxjava-string表示什麼雙重問號?
我真的不知道這是哪裏雙待馬克來自
比如這是我的文本文件的內容
的test.txt
pieceOne;pieceTwo;pieceThree;
,這是我與;
分隔符在控制檯輸出:
??pieceOne
pieceTwo
pieceThree
這裏是我的代碼:
public Observable<String> readFile(String filePath, String delimiter) {
return Observable.just(filePath)
.map(Paths::get)
.map(this::safeInitializeInputStream)//just initialize inputstream here
.flatMap(in -> readInputStream(in, delimiter))
.observeOn(scheduler);
}
private Observable<String> readInputStream(InputStream is, String delimiter) {
return StringObservable
.split(StringObservable.from(new InputStreamReader(is,
Charset.forName("UTF-8"))), delimiter);
}
任何想法將是非常讚賞。
很可能該文件來自Windows計算機,由notepad.exe保存爲UTF-16,前兩個字符是「字節順序標記」,也就是BOM。它們通常必須是「0xff」'0xfe'。檢查一個十六進制查看器。 – 9000
@ 9000是的該死的權利,謝謝你的評論作爲回答,以便我可以接受你 –