WANGYANG000001
2015-12-25 12:30
采纳率: 50%
浏览 1.6k
已采纳

这个Java程序总报错,其中“G:\\JavaFile\\读取二.txt”确实存在。求大神指点

public class Demo03 {
public static void main(String[] args) throws IOException{
get1("G:\JavaFile\读取二.txt");
}
//以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;
}
public static char[] get1(String str)throws IOException{
File fi=new File(str);
return get1(fi);
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • Kris'fan 2015-12-25 13:56
    已采纳

    .txt文档的编码格式是ANSI的,你要把它改成utf-8才可以,你的程序中new FileInputStream(fi)," utf-8"),字符编码格式里多了一个空格。

    点赞 打赏 评论
  • WANGYANG000001 2015-12-25 12:35

    这个程序报错是这样的
    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)
    这是哪里错了呢

    点赞 打赏 评论
  • danielinbiti 2015-12-25 12:37

    以下是修改后的正确代码

     public class Demo03 {
    public static void main(String[] args) throws IOException{
        get1("G:\\JavaFile\\读取二.txt");
    }
    //以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;
    }
    public static char[] get1(String str)throws IOException{
        File fi=new File(str);
        return get1(fi);
    }
    }
    
    点赞 打赏 评论
  • WANGYANG000001 2015-12-25 12:52

    请大神指出错在哪里,在下感激不尽,还是编译器的问题吗,求大神指点

    点赞 打赏 评论
  • 青春逝如流水 2015-12-25 13:28

    话说get1的参数类型不是file吗……你整个字符串是要闹哪样

    点赞 打赏 评论
  • 青春逝如流水 2015-12-25 13:29

    好吧……下面还有个重载的……

    点赞 打赏 评论
  • 毕小宝 2015-12-25 13:39

    首先,有编译错误的。get1("G:\JavaFile\读取二.txt");这行代码。
    “\"反斜杠是转义字符,不能直接用,文件路径中要么用正斜杠"/",要么用两个反斜杠"//"。

    点赞 打赏 评论
  • Kris'fan 2015-12-25 13:59

    把txt文档另存为的时候最下面一行有编码格式,可以修改为utf-8.

    点赞 打赏 评论

相关推荐 更多相似问题