Java中的readAllLines Charset

bli*_*pse 7 java

更新:感谢大家的快速回复.我已经解决了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]);
        }   
    }   
}  
Run Code Online (Sandbox Code Playgroud)

这是错误:

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();
Run Code Online (Sandbox Code Playgroud)

我只是想从一个文件中获取一个字符串数组,而我对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]);
        }   
    }   
}   
Run Code Online (Sandbox Code Playgroud)

它给了我这个:

readConvertSeq.java:6: error: cannot find symbol
    String[] fileArray = Files.readAllLines(file, Charset("US-ASCII")).toArray();
                                                  ^
  symbol:   method Charset(String)
  location: class readConvertSeq
Run Code Online (Sandbox Code Playgroud)

我确定我也犯了其他一些错误,所以请随时给我任何建议.

Mat*_*zyk 10

Charset是一个抽象类,因此您无法使用new关键字对其进行实例化.

要在Java 1.7中使用charset StandardCharsets.US_ASCII


Mur*_*nik 5

使用new运算符调用Java中的构造函数,因此Charset("US-ASCII")不是有效的语句.而且,Charset构造函数是受保护的,因此您必须使用静态工厂方法来创建它:Charset.forName("US-ASCII").