【发布时间】:2017-05-04 05:53:28
【问题描述】:
String text;
try {
PrintStream pw2 = new PrintStream(new FileOutputStream("C:\\Users\\jadit\\Desktop\\ts.doc"));
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
text = br.readLine(); //Reading String
System.out.println(text);
pw2.print(text);
pw2.close();
isr.close();
br.close();
}
catch(Exception e) {
System.out.println(e);
}
int str;
try {
FileInputStream fr2 = new FileInputStream("C:\\Users\\jadit\\Desktop\\ts.doc");
BufferedInputStream br2 = new BufferedInputStream(fr2);
PrintStream pw1 = new PrintStream(System.out, true);
while ((str=br2.read()) >= 0)
pw1.println(" "+str);
fr2.close();
pw1.close();
br2.close();
}
catch(Exception e){}
输出:
run:
a b c d
a b c d
97
32
98
32
99
32
100
32
如果我正在尝试读取其他文件的内容,例如第二个尝试块中的 t.txt,那么它不会执行或读取文件 t.txt,但是当我读取第一个尝试块中写入的同一文件的内容时,它会在输出中显示如上所示的内容。因此,即使流在第一个 try 块本身中关闭并在下一个 try 块中打开,为什么会发生这种情况?我们不能对同一个程序中的不同文件进行不同的处理吗?
【问题讨论】:
-
您的问题我不清楚,而且我无法将输出与您的实际 Java 代码关联起来。
-
要去补充@TimBiegeleisen 我也不太明白你想要什么,但是
reading the content,内容是什么?您将它们阅读为int并且在这里做空捕获。也许你遇到了一个Exception,你从来没有注意到,因为你的异常处理没有做任何事情? (我很确定你会这样做) -
@TimBiegeleisen - 实际上,我已经在 netbeans 上运行了这段代码,这就是我得到的输出。实际上我有这个问题,我应该'使用标准输入在文件'a'中写入一些内容并打印已经创建的另一个文件'b'的内容'。现在问题的第一部分恰好很好,但在第二部分中,如果我试图读取文件“b”的内容,那不会发生,而相反,如果正在读取文件“a”的内容,它正在打印/执行。所以我被卡住了。
-
@Nathan Hughes-你能帮忙吗??
-
@SomeJavaGuy-实际上,我已经在 netbeans 上运行了这段代码,这就是我得到的输出。实际上我有这个问题,我应该'使用标准输入在文件'a'中写入一些内容并打印已经创建的另一个文件'b'的内容'。现在问题的第一部分恰好很好,但在第二部分中,如果我试图读取文件“b”的内容,那不会发生,而相反,如果正在读取文件“a”的内容,它正在打印/执行。所以我被卡住了。