Java 如何初始化inputStream
我正在尝试初始化一个Java 如何初始化inputStream,java,file,inputstream,Java,File,Inputstream,我正在尝试初始化一个InputStream,但它不允许我初始化。我已经能够初始化OutputStream public void readData(){ 字符串fileName=“clinicData.txt”; 扫描仪输入流; System.out.println(“文件“+fileName+”\n包含以下行:\n”); 试一试{ inputStream=新扫描仪(新文件(文件名)); }catch(filenotfounde异常){ System.out.println(“错误:打开文件”+
InputStream
,但它不允许我初始化。我已经能够初始化OutputStream
public void readData(){
字符串fileName=“clinicData.txt”;
扫描仪输入流;
System.out.println(“文件“+fileName+”\n包含以下行:\n”);
试一试{
inputStream=新扫描仪(新文件(文件名));
}catch(filenotfounde异常){
System.out.println(“错误:打开文件”+文件名);
系统出口(0);
}
while(inputStream.hasNextLine()){
String line=inputStream.nextLine();
System.out.println(行);
}
inputStream.close();
}
上面的代码是我正在使用的部分,如果您需要我发布另一部分的outputStream,请告诉我。您想这样做:
try (Scanner inputStream = new Scanner(new File(fileName))) {
while (inputStream.hasNextLine()) {
String line = inputStream.nextLine();
System.out.println(line);
}
} catch (FileNotFoundException e) {
System.out.println("Error: opening the file " +fileName);
System.exit(0);
}
扫描仪输入流代码>在
块中初始化,但是,不能保证初始化成功,您稍后将尝试在try
循环中访问此类实例,这将是错误的。在while
块内移动
而
循环
是Scanner
,因此您可以使用和省略自动关闭的
inputStream.close()
FileInputStream
中获取文件,然后使用扫描仪读取该文件,如下所示
try
{
FileInputStream fis=new FileInputStream("clinicData.txt");
Scanner sc=new Scanner(fis);
while(sc.hasNextLine())
{
System.out.println(sc.nextLine());
}
sc.close();
}
catch(IOException e)
{
e.printStackTrace();
}
嗯,您不是在初始化InputStream
,而是在初始化扫描仪。问题是如何用使用InputStream
的代码替换此代码?还是打算使用扫描仪
,但代码不起作用?如果是后者,到底是什么问题?你有错误吗?错误的结果?你应该正确命名以避免混淆。扫描仪和输入流是不同的东西。您还应该定义“它不允许我”,不要让我们猜测。您不是在尝试创建输入流
,而是在创建扫描仪
。你应该张贴你得到的错误;您的主要问题似乎是可变范围,因为您读取并关闭了初始化范围之外的扫描仪。您可以在这里找到答案:该程序无法工作,因为它是一个错误,我被告知同时使用扫描仪和inputStream