无法在JAVA中将输出写入文本文件

时间:2015-01-05 12:43:18

标签: java file

我正在尝试将数字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();

  }
}

5 个答案:

答案 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());