我正在尝试将数字1-10的方块输出到名为Squares的文件中,但我在OutputStream.print(i+"\t"+(i*i));
部分出错。印刷品有下划线,我不明白为什么。请帮帮我。
以下是代码:
import java.util.*;
import java.io.*;
public class Number1 {
public static void main(String[] args) throws FileNotFoundException {
FileOutputStream fos = new FileOutputStream("Squares.txt");
PrintWriter square;
try{
square = new PrintWriter(fos);
} catch (Exception e) {
System.out.print("Could not create/open file");
System.exit(0);
}
for(int i=1; i<=10; i++)
{
OutputStream.print(i+"\t"+(i*i));
}
}
}
完整的解决方案:
import java.io.*;
public class Number1 {
public static void main(String[] args) throws FileNotFoundException {
FileOutputStream fos = new FileOutputStream("Squares.txt");
PrintWriter square = null;
try{
square = new PrintWriter(fos);
}
catch (Exception e)
{
System.out.print("Could not create/open file");
System.exit(0);
}
for(int i=1; i<=10; i++)
{
square.print(i+"\t"+(i*i));
}
square.close();
}
}
答案 0 :(得分:6)
OutputStream
没有print
方法,即使它有一个,也可能不是静态方法。
使用您的PrintWriter
实例写入文件。
public static void main(String[] args) throws FileNotFoundException
{
FileOutputStream fos = new FileOutputStream("Squares.txt");
try{
PrintWriter square = new PrintWriter(fos);
for(int i=1; i<=10; i++) {
square.print(i+"\t"+(i*i));
}
square.close ();
}
catch (Exception e) {
System.out.print("Could not create/open file");
System.exit(0);
}
}
答案 1 :(得分:4)
您必须致电square.print(i+"\t"+(i*i));
而不是OutputStream.print(i+"\t"+(i*i));
答案 2 :(得分:3)
您正在类print
上调用OutputStream
,而不是在具有该函数的类的实例上调用square.print(i+"\t"+(i*i));
。您可能想要做的是
{{1}}
答案 3 :(得分:3)
要快速使代码生效,
将for循环移到try{}
语句中,而不是错误地调用OutputStream.print
,使用命令:square.print
答案 4 :(得分:-1)
您应该使用fos.write((i+"\t"+(i*i)).getBytes());