作者givemepass (〆)
看板AndroidDev
标题Re: [问题] 读取文字档(/raw;/assets;/res)
时间Wed Dec 28 15:51:54 2011
※ 引述《sweet00914 (别理我)》之铭言:
: 请问各位大大~
: Q1:
: 我将一个*.txt放置/raw,/assets中都不会有错误产生,
: 可以若我将*.txt放置/res中就会有错误。
: 请问这是为什麽呢?
: Q2:
: 若我要使用RandomAccessFile来读取*.txt
: 方式有两种
: RandomAccessFile raf = new RandomAccessFile(File file, "r");
: RandomAccessFile raf = new RandomAccessFile(String str, "r");
: 可是我不知道若从/assets和/raw中如何取得file跟str?
: 上述两个问题~请大家多多指教。0.0
把你的档案放在assets里面
我假设你的档案叫做 my_text_file.txt
然後我复制一份存到sdcard下面/sdcard/text_file.txt
就可以拿这个来读取
public class TestRandomFileAccessActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//先取得资产管理员
AssetManager assetManager = this.getApplicationContext().getAssets();
try {
//用资产管理员打开文字档 变成串流
InputStream inputStream = assetManager.open("my_text_file.txt");
byte[] b = new byte[1024];
int len = -1;
File file = new File("/sdcard/text_file.txt");
FileOutputStream outputStream = new FileOutputStream(file);
while((len = inputStream.read(b))!=-1){
//写到sdcard下 变成一个file
outputStream.write(b, 0, len);
}
inputStream.close();
outputStream.close();
//在拿这个file让RandomAccessFile读取
RandomAccessFile random = new RandomAccessFile(file,"rw");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
其实如果可以直接从android读进file, 应该会方便许多,
我这样做等於多了一个步骤,
不知道还有没有其他的方法?
如果有麻烦请指导一下 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.221.115.4
1F:→ aleelyle:可以直接读写 12/28 16:00
2F:→ givemepass:请问楼上大大 怎麽直接读写 12/28 16:09
3F:→ nonebelieve:java 读档有很多种方法 google就有 12/28 16:24
nonebelieve大 我知道JAVA有很多读档方式 所以不知道是否可以提供关键字
让我了解有什麽方法可以直接从ANDROID读文字档? 谢谢
4F:推 sweet00914:感谢各位的建议~0.0 12/28 16:39
5F:→ sweet00914:请问各位能提供采用RandomAccessFile来读取assets中的 12/28 16:40
6F:→ sweet00914:在assets中的*.txt档案吗?0.0 12/28 16:40
7F:→ sweet00914:givemepass大大是透过SD卡来存取~请问aleelyle大大 12/28 16:41
8F:→ sweet00914:怎直接读取呢?(RandomAccessFile直接读取/assets/*.txt 12/28 16:42
※ 编辑: givemepass 来自: 61.221.115.4 (12/28 16:48)
9F:→ aleelyle:Acticity.getAssets.open 12/28 19:59
10F:→ aleelyle: v 12/28 19:59
这位大大 请问跟我写的有什麽不一样?@@ 还是你没看内文?
※ 编辑: givemepass 来自: 61.64.168.114 (12/28 20:12)