Libgdx 文件句柄.. 读取单行

Posted

技术标签:

【中文标题】Libgdx 文件句柄.. 读取单行【英文标题】:Libgdx file handle.. reading a single line 【发布时间】:2016-05-17 15:54:04 【问题描述】:

我正在尝试在 libgdx 上编码的项目上保存和加载文件。这意味着我不能使用缓冲阅读器,因为 android 不会读取它.. 我不能将项目移动到 android,因为它必须在核心中......经过几天和几天或理解所有......现在我正在尝试文件处理哪个应该正确?但我不能让它逐行阅读..它将所有文本都放在字符串中..帮助plzz..我的理解是否正确,保存和加载比它应该的要复杂得多?这是代码..

  FileHandle handle = Gdx.files.local("words.txt");
  String text = handle.readString();
  words.add(text);

【问题讨论】:

单词是一个字符串数组 【参考方案1】:

有几种方法可以逐行阅读。当您使用包含字符串、字节数组和各种阅读器的 LibGDX FileHandle API 读取文件时;有几种方法可以读取数据。我假设您在此文件中有某种形式的字典,列表中的单词由换行符分隔?如果是这种情况,您可以使用现有的字符串并在新的行终止符上拆分。

  FileHandle handle = Gdx.files.local("words.txt");
  String text = handle.readString();
  String wordsArray[] = text.split("\\r?\\n");
  for(String word : wordsArray) 
      words.add(word);
  

您真正需要担心的只有两个换行符(UNIX 和 Windows)。

FileHandle API

【讨论】:

它是.. 我正在尝试拆分它们.. 让我尝试一下并标记它是否有效【参考方案2】:

这是给所有刚开始保存和加载以及厌倦寻找答案的人。让我为你们省去麻烦和研究的日子...

如果您在 libgdx 中启动一个项目并希望在 android 上节省负载.. 不要遵循缓冲阅读器或 inputstreamer 或任何这些教程,它们将不起作用,因为由于某种原因 android 无法读取 assest 文件夹中的内容.. 它仅适用于您的桌面版本..

如果您单独使用 android studios,请继续使用 try catch buffered or file or inputstreamer..

还有 Context.. 资产管理器.. 这条路线将不起作用,因为该项目必须位于您的 android 文件夹而不是核心才能使用这些库..

否则按照上述方法..

类路径..内部..外部..或本地...取决于您存储文件的位置!!!...欢迎您

【讨论】:

以上是关于Libgdx 文件句柄.. 读取单行的主要内容,如果未能解决你的问题,请参考以下文章

读取整个文件是不是会使文件句柄保持打开状态?

Perl DATA 文件句柄在读取时为空

读取 csv 文件时雪花句柄为空

VB中如何得到一个文件的句柄?

怎么得到已经打开的文件的句柄

Filebeat占用文件句柄