android小说阅读器如何读取assets目录下的txt?悬赏50rmb

qq_28046949 2018-03-01 09:19:02
项目源码http://blog.csdn.net/github_38075367/article/details/77075477
截图展示http://blog.csdn.net/github_38075367/article/details/76255230
这个是别人的阅读器源码,要把本地txt放到书架上只能先扫描再选中txt文件添加上去,然而我想直接把本地txt的路径存在一个button里,按下这个button跳转到书架页面并且同时添加到书架上,
例如我想使用assets下的text路径"file:///android_asset/test.text"
求怎么解决?
联系QQ:2282373725 解决了发50rmb,嫌价格低了可详谈


...全文
926 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jklwan 2018-03-12
  • 打赏
  • 举报
回复
比较简单的方法就是拷贝assets下的文件到sd卡或应用的file目录下,然后读取。比较麻烦的是改源码了,代码是读取文件,你要改成读取assets下的文件,fileInputStream改成AssetManager读取文件
Android小码家 2018-03-11
  • 打赏
  • 举报
回复
新建一个集合在获取到文档时 加入进去即可。 ArrayList<File> newFiles = new ArrayList<>(); if (!TextUtils.isEmpty(filtertFileName(current))) { Log.e("得到文档文件:", indent + current); newFiles.add(new File(current)); }
qq_28046949 2018-03-10
  • 打赏
  • 举报
回复
引用 2 楼 qq_20330595 的回复:
你的意思是不想扫描就能获取路劲并上传到本地书架上是吧? 1 已知路径时: InputStream is = getAssets().open(fileName); int lenght = is.available(); byte[] buffer = new byte[lenght]; is.read(buffer); String result = = new String(buffer, "utf8"); 1 不知道路径时: 那你只需要遍历你asserts里的txt文件即可。 CommenUtils.printAssetsFiles(getAssets(),"","","") public static void printAssetsFiles(AssetManager am, String parent, String current, String indent) { if (!TextUtils.isEmpty(current)) { if (!TextUtils.isEmpty(filtertFileName(current))){ Log.e("得到文档文件:", indent + current); InputStream is = null; try { is = am.open(current); int lenght = is.available(); byte[] buffer = new byte[lenght]; is.read(buffer); String result = new String(buffer, "utf8"); Log.e("得到文档内容如下:", result); } catch (IOException e) { e.printStackTrace(); } indent += "\t"; } } // 列出子文件 String[] files; String currentParent; try { if (TextUtils.isEmpty(parent)) { currentParent = current; } else { currentParent = parent + "/" + current; } files = am.list(currentParent); } catch (IOException e1) { return; } if (files != null && files.length > 0) { for (String f : files) { printAssetsFiles(am, currentParent, f, indent); } } } public static String filtertFileName(@NotNull String url) { Log.e("getUrl:", url); String suffixes = "pdf|txt|docx|doc"; Pattern pat = Pattern.compile("[\\w]+[\\.](" + suffixes + ")");//正则判断 Matcher mc = pat.matcher(url);//条件匹配 while (mc.find()) { String substring = mc.group();//截取文件名后缀名 Log.e("getFileName:", substring); return substring; } return ""; }
你这个是直接获取文本里内容吧。。。 有什么办法获得assets的绝对路径么,接口是List<File> books。要放入File里,file:///android_asset/test.txt 这个路径放不进去。
Android小码家 2018-03-09
  • 打赏
  • 举报
回复
你的意思是不想扫描就能获取路劲并上传到本地书架上是吧? 1 已知路径时: InputStream is = getAssets().open(fileName); int lenght = is.available(); byte[] buffer = new byte[lenght]; is.read(buffer); String result = = new String(buffer, "utf8"); 1 不知道路径时: 那你只需要遍历你asserts里的txt文件即可。 CommenUtils.printAssetsFiles(getAssets(),"","","") public static void printAssetsFiles(AssetManager am, String parent, String current, String indent) { if (!TextUtils.isEmpty(current)) { if (!TextUtils.isEmpty(filtertFileName(current))){ Log.e("得到文档文件:", indent + current); InputStream is = null; try { is = am.open(current); int lenght = is.available(); byte[] buffer = new byte[lenght]; is.read(buffer); String result = new String(buffer, "utf8"); Log.e("得到文档内容如下:", result); } catch (IOException e) { e.printStackTrace(); } indent += "\t"; } } // 列出子文件 String[] files; String currentParent; try { if (TextUtils.isEmpty(parent)) { currentParent = current; } else { currentParent = parent + "/" + current; } files = am.list(currentParent); } catch (IOException e1) { return; } if (files != null && files.length > 0) { for (String f : files) { printAssetsFiles(am, currentParent, f, indent); } } } public static String filtertFileName(@NotNull String url) { Log.e("getUrl:", url); String suffixes = "pdf|txt|docx|doc"; Pattern pat = Pattern.compile("[\\w]+[\\.](" + suffixes + ")");//正则判断 Matcher mc = pat.matcher(url);//条件匹配 while (mc.find()) { String substring = mc.group();//截取文件名后缀名 Log.e("getFileName:", substring); return substring; } return ""; }
qq_28046949 2018-03-08
  • 打赏
  • 举报
回复
求解决求解决求解决求解决

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧