更新:感谢大家的快速回复。我已经解决了Charset问题,但是现在发生了一件我根本不理解的事情。这是我的代码:
import java.io.*;
import java.nio.file.*;
import java.nio.charset.*;
public class readConvertSeq{
private static String[] getFile(Path file){
String[] fileArray = (String[])Files.readAllLines(file, StandardCharsets.US_ASCII).toArray();
return fileArray;
}
public static void main(String[] args){
String[] test = readConvertSeq.getFile(Paths.get(args[0]));
int i;
for(i = 0; i < test.length; i++){
System.out.println(test[i]);
}
}
}
这是错误:
readConvertSeq.java:6: error: unreported exception IOException; must be caught or declared to be thrown
String[] fileArray = (String[])Files.readAllLines(file, StandardCharsets.US_ASCII).toArray();
我只是想从文件中获取一个字符串数组,而且我对Java的迂腐感到非常沮丧。这是我的代码:
import java.io.*;
import java.nio.file.*;
import java.nio.charset.*;
public class readConvertSeq{
private static String[] getFile(Path file){
String[] fileArray = Files.readAllLines(file, Charset("US-ASCII")).toArray();
return fileArray;
}
public static void main(String[] args){
String[] test = readConvertSeq.getFile(Paths.get(args[0]));
int i;
for(i = 0; i < test.length; i++){
System.out.println(test[i]);
}
}
}
它给了我这个:
readConvertSeq.java:6: error: cannot find symbol
String[] fileArray = Files.readAllLines(file, Charset("US-ASCII")).toArray();
^
symbol: method Charset(String)
location: class readConvertSeq
我确信我也犯了其他一些错误,所以请随时给我任何建议。
答案 0 :(得分:9)
Charset是一个抽象类,因此您无法使用 new 关键字对其进行实例化。
要在Java 1.7中使用StandardCharsets.US_ASCII
答案 1 :(得分:5)
使用new
运算符调用Java中的构造函数,因此Charset("US-ASCII")
不是有效语句。
此外,Charset
的构造函数受到保护,因此您必须使用静态工厂方法来创建它:Charset.forName("US-ASCII")
。
答案 2 :(得分:3)
您需要进行以下更改
String[] fileArray = (String[]) Files.readAllLines(file.toPath(), Charset.forName("US-ASCII")).toArray();
^^^^^ - Cast required ^^^^ - Get Charset using forName
答案 3 :(得分:2)
Charset没有公共构造函数,因此您必须使用静态工厂方法Charset#forName