如何使用 InputStream 加载 UTF-8 文本文件
How to load a UTF-8 text file with InputStream
我想通过按一个按钮将资产文件夹中的 .txt 文件加载到文本视图中。我这样做了,但我的问题是我的文本文件是 UTF-8 编码的文本,一些奇怪的字符被复制到我的 TextView 而不是我的真实文字......
这是我写的代码和方法,但我不知道应该把 "UTF-8" 作为参数放在哪里..
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
try {
InputStream iFile = getAssets().open("mytext.txt");
String strFile = inputStreamToString(iFile);
Intent intent=new Intent(MyActivity.this,SecondActivity.class);
intent.putExtra("myExtra", strFile);
final int result=1;
startActivityForResult(intent, result);
} catch (IOException e) {
e.printStackTrace();
}
public String inputStreamToString(InputStream is) throws IOException {
StringBuffer sBuffer = new StringBuffer();
DataInputStream dataIO = new DataInputStream(is);
String strLine = null;
while ((strLine = dataIO.readLine()) != null) {
sBuffer.append(strLine + "\n");
}
dataIO.close();
is.close();
return sBuffer.toString();
}
感谢您的帮助 ;-)
以下代码将您的文件读入字节数组缓冲区并将其转换为字符串
public String inputStreamToString(InputStream is) throws IOException {
byte[] buffer = new byte[is.available()];
int bytesRead = is.read(buffer);
return new String(buffer, 0, bytesRead, "UTF-8");
}
我想通过按一个按钮将资产文件夹中的 .txt 文件加载到文本视图中。我这样做了,但我的问题是我的文本文件是 UTF-8 编码的文本,一些奇怪的字符被复制到我的 TextView 而不是我的真实文字...... 这是我写的代码和方法,但我不知道应该把 "UTF-8" 作为参数放在哪里..
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
try {
InputStream iFile = getAssets().open("mytext.txt");
String strFile = inputStreamToString(iFile);
Intent intent=new Intent(MyActivity.this,SecondActivity.class);
intent.putExtra("myExtra", strFile);
final int result=1;
startActivityForResult(intent, result);
} catch (IOException e) {
e.printStackTrace();
}
public String inputStreamToString(InputStream is) throws IOException {
StringBuffer sBuffer = new StringBuffer();
DataInputStream dataIO = new DataInputStream(is);
String strLine = null;
while ((strLine = dataIO.readLine()) != null) {
sBuffer.append(strLine + "\n");
}
dataIO.close();
is.close();
return sBuffer.toString();
}
感谢您的帮助 ;-)
以下代码将您的文件读入字节数组缓冲区并将其转换为字符串
public String inputStreamToString(InputStream is) throws IOException {
byte[] buffer = new byte[is.available()];
int bytesRead = is.read(buffer);
return new String(buffer, 0, bytesRead, "UTF-8");
}