【发布时间】:2020-03-30 09:27:23
【问题描述】:
我正在练习Java中的文件读取器和写入器方法,我编写了这段代码并没有按预期工作,请指教...
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
try {
FileOutputStream obj = new FileOutputStream("D:\\testout.txt");
String s = "Hello world";
byte c[] = s.getBytes();
obj.write(c);
obj.close();
System.out.println("thanks, file created.");
} catch (Exception e) {
System.out.println(e);;
}
FileInputStream reader = new FileInputStream("D:\\testout.txt");
int i;
/*while ((i = reader.read())!= -1) {
System.out.print((char)i);
}
reader.close(); */
for(i = 0; i <= reader.read(); i++) {
System.out.print((char)i);
}
reader.close();
}
}
当使用“while”函数时它可以工作,但是当用“for”替换它时它显示符号,我做错了什么??
【问题讨论】:
-
您的意思是说它不适用于
for?你写的while和for循环是不等价的。 -
for循环主要用于编号:
for (int i = 0; i < 10; ++i) println("digit " + i);。你没有读入 i。for (; (i = reader.read()) >= 0; )是正确的循环,while更好。 -
@Bentaye 我的意思是,它适用于“while”,但不适用于“for”,对不起,我要纠正那个......
-
@JoopEggen,很有趣,谢谢大佬的帮助。
标签: java streamreader streamwriter