【问题标题】:Alternative to java.nio.filejava.nio.file 的替代品
【发布时间】:2017-09-28 03:23:52
【问题描述】:

我在这个项目中使用的是 Android Studio 2.3.1 和 jdk 1.8。

我导入了一个项目,它正在使用“java.nio.file.Files”和“java.nio.file.Paths”。

Java 8 中不存在包“java.nio.file”。

Android Studio 也不允许选择 jdk 1.7。

我可以用这段代码做什么?

public void toFile(final String path) throws IOException {
    Files.write(Paths.get(path), toBuffer());
}

还有这段代码

public static Source fromFile(final String path) throws IOException {
    return fromBuffer(Files.readAllBytes(Paths.get(path)));
}

**(无法解析文件和路径)

谢谢

【问题讨论】:

    标签: java android android-studio io java.nio.file


    【解决方案1】:

    Android 不提供“传统 Java”必须提供的所有类。文件是 Android 不提供的类之一。

    您可以在此处查看 Android 中可用的类:http://developer.android.com/reference/classes.html

    因此,很遗憾,您必须使用其他函数/类来实现相同的功能。

    我发现这个library 声称是

    NNIO:Java NIO.2 替代库

    但我认为您应该改用 guava 来实现相同的功能,因为它在许多一流的应用程序中使用并且拥有庞大的社区。​​p>

    编辑: 由于 Android O Developer Preview 支持 java.nio.file。 https://developer.android.com/reference/java/nio/file/package-summary.html

    【讨论】:

    • 感谢您的回答,但是这个库的 Paths 类与 java.nio.file 中的同一类类似,但 NNIO 的 Files 类没有“write”和“readallbytes”方法!!
    • 那你应该看看番石榴。我很确定您可以使用非常相似的代码完成相同的操作。
    • 是的,Guava 有 'toByteArray' 方法,其工作方式与 'readAllBytes' 相同,但我无法使用它。你能用 Guava 和 NNIO 重新编写我的项目方法吗?
    • 我尝试用 Guava 库重写方法(昨天),但我的项目无法正常工作。
    【解决方案2】:

    好消息:java.nio.* 现已成为 Android O 的一部分!

    更多信息在这里https://developer.android.com/reference/java/nio/package-summary.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2012-01-25
      • 2015-08-05
      • 2011-01-01
      • 2011-10-24
      • 2011-05-31
      相关资源
      最近更新 更多