» 首頁 » 討論區 » Android程式設計 »filereader的問題

filereader的問題

發表人: nobb
積分: 58
發表時間: 2011-12-04 08:10:59
[sea:javaCode]
package eeasybook.book;


import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;




import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.widget.TextView;


public class Readbook extends Activity
{
Sqlitehelper sqlitehelper;
TextView showbook , booktitle;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.readbook);
booktitle = (TextView)findViewById(R.id.bookname);
showbook = (TextView)findViewById(R.id.showbook);
Bundle bundle = this.getIntent().getExtras();
String bookname1 = bundle.getString("book");
booktitle.setText(bookname1);
//showbook.setText(bookname1);
sqlitehelper = new Sqlitehelper(this, Sqlitehelper.DB_NAME,null,1);
SQLiteDatabase db = sqlitehelper.getReadableDatabase();
Cursor cursor = db.query(Sqlitehelper.TABLE_NAME, new String[]{"Book_NUM","Book_NAME"}, "Book_NAME ='" + bookname1 + "'", null, null, null, null);
cursor.moveToFirst();
booktitle.setText(cursor.getString(0));
//Find the directory for the SD Card using the API
//*Don't* hardcode "/sdcard"
File sdcard = Environment.getExternalStorageDirectory();

//Get the text file
File file = new File(sdcard,"file.txt");

//Read text from file
StringBuilder text = new StringBuilder();

try {
BufferedReader br = new BufferedReader(new FileReader(file));
//BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"unicode"));
String line;

while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
br.close();
}
}
catch (IOException e) {
//You'll need to add proper error handling here
}
showbook.setText(text);
}
}
[/sea]
這是我讀SD卡的java語法
我在改
[sea:javaCode]
BufferedReader br = new BufferedReader(new FileReader(file));
[/sea]
之前可以讀,but因為是中文所以出現亂碼
所以我就改成
[sea:javaCode]
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"unicode"));
[/sea]
但是改了之後就完全讀不到了...
改回來也一樣
是什麼原因呢?
發表人: Seachaos
積分: 2432
發表時間: 2011-12-05 20:17:02
[quote]nobb 提到:
[sea:javaCode]
package eeasybook.book;


import java.i...[/quote]

會是亂碼和InputStream的關系應該不大
你的檔案是用那種編碼? UTF-8 還是Big-5的?
發表人: nobb
積分: 58
發表時間: 2011-12-17 00:31:40
這個問題解決囉
他自己就正常了,有點奇怪