相关疑难解决方法(0)

找不到包java.nio.file

我的java编译器找不到java.nio.file包.考虑:

import java.nio.file.*;
public class Test {
    public static void main(String[] args) { 
        Path currentRelativePath = Paths.get("");
    }
}
Run Code Online (Sandbox Code Playgroud)

用...编译

bash$ javac Test.java
Run Code Online (Sandbox Code Playgroud)

Test.java:1: package java.nio.file does not exist
import java.nio.file.*;
                ^
Test.java:5: cannot find symbol
symbol  : class Path
location: class Test
    Path currentRelativePath = Paths.get("");
    ^
Test.java:5: cannot find symbol
symbol  : variable Paths
location: class Test
    Path currentRelativePath = Paths.get("");
                               ^
3 errors
Run Code Online (Sandbox Code Playgroud)

我正在使用Ubuntu 12.04,我认为我安装了JDK 7(参见:package java.nio.file不存在)

bash$ java -version
java version …
Run Code Online (Sandbox Code Playgroud)

java nio

9
推荐指数
2
解决办法
1万
查看次数

如何使用CharSet对CharSequence进行编码(不转换为String)

我想使用指定的CharSet将一个CharSequence写入OutputStream.基本上,当调用write(String)时,使用相同CharSet初始化的Writer会做什么.

问题是,有很多CharSequences要写,有些很大.更复杂的是,可以将所有内容写入多个OutputStream.我可以通过使用(实际上我目前已经以这种方式实现)轻松实现它:

byte[] rawBytes = CharSequence.toString().getBytes(CharSet)
for (OutputStream out : outputTargets) {
    out.write(rawBytes);
}
Run Code Online (Sandbox Code Playgroud)

但显然String在这里是完全不需要的垃圾对象,byte []数组也是如此.我正在寻找一种方法,允许我直接进行编码而不需要中间对象.令人惊讶的是,这似乎是不可能的 - 无论我在JRE中看到CharSequence被接受的地方,它都会在任何工作完成之前迅速转换为字符串.

CharSet的大部分(全部?)转换工作似乎都是在非公共类中完成的,所以我没有找到任何方式以透明和合法的方式访问任何一个.

如何避免垃圾/ JRE的CharSet编码设施直接使用?

java character-encoding charsequence

6
推荐指数
2
解决办法
3653
查看次数

标签 统计

java ×2

character-encoding ×1

charsequence ×1

nio ×1