这个程序总是报错,求解答

//以utf-8的格式读取文件
//文件——》程序——》字符数组
public static char[] get1(File fi)throws IOException{
char[] ch=null;
BufferedReader reader=new BufferedReader(
new InputStreamReader(
new FileInputStream(fi)," utf-8")
);
CharArrayWriter writer=new CharArrayWriter();
char[] ch01=new char[2];
int len=0;
while((len=reader.read(ch01))!=-1)
{
writer.write(ch01, 0, len);
}
writer.flush();
ch=writer.toCharArray();
System.out.println(new String(ch));
reader.close();
return ch;
}

是不是导包错了,我这边可以运行的
package org.tarena;

import java.io.BufferedReader;
import java.io.CharArrayWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test {

public static char[] get1(File fi)throws IOException{
    char[] ch=null;
    BufferedReader bf=new BufferedReader(new InputStreamReader(
            new FileInputStream(fi)," utf-8"));

// FileInputStream fis = new FileInputStream(fi);
// InputStreamReader isr = new InputStreamReader(fis, "utf-8");
// BufferedReader bf = new BufferedReader(isr);
CharArrayWriter writer=new CharArrayWriter();
char[] ch01=new char[2];
int len=0;
while((len=bf.read(ch01))!=-1)
{
writer.write(ch01, 0, len);
}
writer.flush();
ch=writer.toCharArray();
System.out.println(new String(ch));
bf.close();
return ch;

    }

public static void main(String[] args) {
    File file = new File("./netctoss.sql");
    try {
        char[] cha = Test.get1(file);
        System.out.println(cha);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}

Exception in thread "main" java.io.UnsupportedEncodingException: utf-8
at sun.nio.cs.StreamDecoder.forInputStreamReader(Unknown Source)
at java.io.InputStreamReader.(Unknown Source)
at 字节数组流.Demo03.get1(Demo03.java:24)
at 字节数组流.Demo03.get1(Demo03.java:42)
at 字节数组流.Demo03.main(Demo03.java:18)
eclipse报这样的错什么意思

真正的编码类型是"utf-8",你给出的代码前面有个空格,成了" utf-8",这样当然会报错了,没有这个编码类型。

utf-8前面有个空格 删了

就是楼上说的你的"utf-8"多了个空格的原因