0

我的第一个java程序..

所以我正在尝试使用java创建一个文件并存储在我的电脑中

  import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.Writer;


    public class createfile {
        public static void main(String[] args)  throws IOException {

int[] numbers = {1,2,3};
for (int item : numbers) {
        String key = "file" + item;
        File file = File.createTempFile("c:\\",key,".txt");

        Writer writer = new OutputStreamWriter(new FileOutputStream(file));
        writer.write("abcdefghijklmnopqrstuvwxyz\n");
        writer.write("01234567890112345678901234\n");
        writer.write("!@#$%^&*()-=[]{};':',.<>/?\n");
        writer.write("01234567890112345678901234\n");
        writer.write("abcdefghijklmnopqrstuvwxyz\n");
        writer.close();
}  
        return file;
    }

    }

我在这里想念什么..我想不通。一切似乎都顺着这本书。

谢谢

===========更新===========

在我接受之后

- return file ;
- throws IOException ;
- and change to File file = File.createTempFile(key,".txt",new File("c:\\")); 

我仍然收到此错误

线程“main” java.lang.Error 中的异常:未解决的编译问题:未处理的异常类型 IOException 未处理的异常类型 FileNotFoundException 未处理的异常类型 IOException 未处理的异常类型 IOException 未处理的异常类型 IOException 未处理的异常类型 IOException 未处理的异常类型 IOException 未处理的异常类型 IOException

4

2 回答 2

2

你在java语法中有一些错误:

  1. 当您将方法声明为void(此处为 public static void main(....))时,这意味着该方法没有返回值 - 所以 line "return file;" 这里不需要。

  2. 使用使用错误的签名(File.createTempFile函数中的参数类型错误。可能的用法是:

    • createTempFile(String prefix, String suffix)

    • createTempFile(String prefix, String suffix, File directory)

有关 File 类的更多信息,请使用此链接:http ://docs.oracle.com/javase/6/docs/api/java/io/File.html

遵循工作代码的可能版本:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;


public class createfile
{
    public static void main(String[] args) throws IOException
   {

     int[] numbers = {1,2,3};
     for (int item : numbers) 
     {
        String key = "file" + item;
        File file = File.createTempFile(key,".txt",new File("c:\\"));

        Writer writer = new OutputStreamWriter(new FileOutputStream(file));
        writer.write("abcdefghijklmnopqrstuvwxyz\n");
        writer.write("01234567890112345678901234\n");
        writer.write("!@#$%^&*()-=[]{};':',.<>/?\n");
        writer.write("01234567890112345678901234\n");
        writer.write("abcdefghijklmnopqrstuvwxyz\n");
        writer.close();
     }  
   }
}

您还可以查看如何将文本写入文件的另一个示例:http: //www.homeandlearn.co.uk/java/write_to_textfile.html。此链接使用 NetBeans 作为编写代码的 Java 工具。我强烈建议使用一些 IDE(Eclipse、NetBeans)在 java 中编写代码。它会标记您的编译错误并建议更正。NetBeans 站点:https ://netbeans.org/ 欢迎来到 Java 世界

于 2013-10-11T09:46:04.193 回答
1

public static void main(String[] args) throws IOException {不返回任何内容,因此return file不需要该语句

File.createTempFile要么需要,String要么,String所以不会编译。FileStringStringFile file = File.createTempFile("c:\\", key, ".txt");

类似的东西File file = File.createTempFile(key, ".txt", new File("c:\\"));可能是一个更好的主意,但取决于您想要实现的目标。

JavaDocs声明前缀必须至少为三个字符长,因此您需要填充该值key以满足这些要求。

您可能会发现使用类似...

File file = new File("C:\\" + key + ".txt");

更易于管理...

于 2013-10-11T06:28:48.610 回答