Java 构造函数InputStreamReader(文件)未定义

Java 构造函数InputStreamReader(文件)未定义,java,java-7,bufferedreader,fileinputstream,inputstreamreader,Java,Java 7,Bufferedreader,Fileinputstream,Inputstreamreader,在编译上述程序时,我遇到了如下错误 Streams.java(第7行)中的错误BufferedReader br=new BufferedReader(新的InputStreamReader(is)); ^^^^^^^^^^^^^^^^^^^^^^^^^ 构造函数InputStreamReader(文件)未定义 请帮助我解决这个问题,我正在使用java1.7.0\u 51version,OS linux Deepin 提前感谢BufferedReader br=new BufferedRead

在编译上述程序时,我遇到了如下错误

Streams.java(第7行)中的错误BufferedReader br=new BufferedReader(新的InputStreamReader(is)); ^^^^^^^^^^^^^^^^^^^^^^^^^

构造函数InputStreamReader(文件)未定义


请帮助我解决这个问题,我正在使用java
1.7.0\u 51
version,
OS linux Deepin


提前感谢

BufferedReader br=new BufferedReader(new-InputStreamReader(new-FileInputStream(is))

它应该可以工作。

BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(is))
而且它应该会起作用。

是的,它非常正确。查看,您将找不到使用
文件
参数的构造函数

相反,您应该构造一个
FileInputStream
来读取文件,并将其传递给
InputStreamReader
的构造函数。您还应该指定要使用的编码,否则将使用平台默认编码

另请注意:

  • 您应该使用try with resources语句自动关闭资源
  • 我不会将
    文件命名为
    变量
    is
    ——这听起来更像是一个
    输入流
例如:

import java.io.*;

public class Streams {
    public static void main(String[] args) {
        File homedir = new File(System.getProperty("user.home"));
        File is = new File(homedir, "java/in.txt");
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        int value = 0;
        while ((value=br.read())!=-1) {
            char c = (char) value;
            System.out.println(c);
        }
    }
}

(或者根据fge的回答使用
文件
API)。

是的,非常正确。查看,您将找不到使用
文件
参数的构造函数

相反,您应该构造一个
FileInputStream
来读取文件,并将其传递给
InputStreamReader
的构造函数。您还应该指定要使用的编码,否则将使用平台默认编码

另请注意:

  • 您应该使用try with resources语句自动关闭资源
  • 我不会将
    文件命名为
    变量
    is
    ——这听起来更像是一个
    输入流
例如:

import java.io.*;

public class Streams {
    public static void main(String[] args) {
        File homedir = new File(System.getProperty("user.home"));
        File is = new File(homedir, "java/in.txt");
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        int value = 0;
        while ((value=br.read())!=-1) {
            char c = (char) value;
            System.out.println(c);
        }
    }
}
(或者根据fge的回答使用
文件
API)。

您使用Java 7吗

然后:

你使用Java7吗?完全删除
文件
。请参阅,
路径
文件系统

(编辑:并使用try with resources语句;有关更多详细信息,请参阅@JonSkeet的答案)

您使用Java 7吗

然后:

你使用Java7吗?完全删除
文件
。请参阅,
路径
文件系统


(编辑:并使用try with resources语句;有关更多详细信息,请参阅@JonSkeet的答案)

@Selva:“我遇到了错误”不会告诉我们错误是什么。如果是因为编译器找不到
标准字符集
,那是因为您需要对其进行导入(例如
导入java.nio.charset.StandardCharsets;
)@约翰斯基特叫我去找他sollution@Selva:如果您不说错误是什么,我如何帮助您找到解决方案?@JohnSkeet在导入“java.nio.charset.StandardCharsets;”这个包告诉我们:导入java.nio.charset.StandardCharsets无法解析sir no sir我将使用“javac-source 5 filename.java”编译我的程序only@Selva:“我出错了”没有告诉我们错误是什么。如果是因为编译器找不到
标准字符集
,那是因为您需要对其进行导入(例如
导入java.nio.charset.StandardCharsets;
)@约翰斯基特叫我去找他sollution@Selva:如果您不说错误是什么,我如何帮助您找到解决方案?@JohnSkeet在导入“java.nio.charset.StandardCharsets;”这个软件包告诉我们:导入java.nio.charset.StandardCharsets无法解析sir no sir我将仅使用“javac-source 5 filename.java”编译我的程序,而您仍然得到相同的异常?在以您的方式编译时,我得到FileNotFound和IOexception sir这是因为您设置了错误的路径。这是离题的。
FileNotFoundException
说的不是这样,我相信。你仍然得到了同样的异常?在按照你的方式编译时,我得到了FileNotFound和IOexception sir,这是因为你设置了错误的路径。这是离题的。
FileNotFoundException
说的不是这样,我相信它。
Files.newBufferedReader(Paths.get(System.getProperty("home.dir")
    .resolve("java/in.txt")), StandardCharsets.UTF_8);