Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中向多个输出文件写入不同的值?_Java_Arrays_Arraylist_Fileoutputstream_Bufferedwriter - Fatal编程技术网

如何在Java中向多个输出文件写入不同的值?

如何在Java中向多个输出文件写入不同的值?,java,arrays,arraylist,fileoutputstream,bufferedwriter,Java,Arrays,Arraylist,Fileoutputstream,Bufferedwriter,我有下面的Java8代码,它创建了一个文件fine(文件中的内容是一行单独的文本)。改变代码的最好方法是什么,这样我就可以得到三个独立的文本文件 String os = System.getProperty("os.name"); String jv = System.getProperty("java.version"); String userfolder = System.getProperty("user.home"); try (Writer writer = new Buffere

我有下面的Java8代码,它创建了一个文件fine(文件中的内容是一行单独的文本)。改变代码的最好方法是什么,这样我就可以得到三个独立的文本文件

String os = System.getProperty("os.name");
String jv = System.getProperty("java.version");
String userfolder = System.getProperty("user.home");

try (Writer writer = new BufferedWriter(new OutputStreamWriter(
                new FileOutputStream(userfolder + "opsys.txt"), "utf-8")))
                {
                 writer.write((String) os);
                } catch (UnsupportedEncodingException e) 
                {
                e.printStackTrace();
                } catch (FileNotFoundException e) 
                {
                e.printStackTrace();
                } catch (IOException e) 
                {
                e.printStackTrace();
                }
我试图实现的输出:

  • 3个文本文件
    • 命名为opsys.txt、version.txt和userhome.txt
    • 每个文件都包含相关的System.getProperty答案

您可以将写入文件的所有功能放在单独的方法中,例如:

private void writeFile(String fileName, String content) {

    try (Writer writer = new BufferedWriter(new OutputStreamWriter(
            new FileOutputStream(fileName), "utf-8")))
    {
        writer.write((String) content);
    } catch (UnsupportedEncodingException e)
    {
        e.printStackTrace();
    } catch (FileNotFoundException e)
    {
        e.printStackTrace();
    } catch (IOException e)
    {
        e.printStackTrace();
    }
}
String os = System.getProperty("os.name");
String jv = System.getProperty("java.version");
String userfolder = System.getProperty("user.home");

//Here you call the writeFile method the number of time that you need:
writeFile(userfolder + "opsys.txt", os);
....
在此之后,您以前的代码将类似于:

private void writeFile(String fileName, String content) {

    try (Writer writer = new BufferedWriter(new OutputStreamWriter(
            new FileOutputStream(fileName), "utf-8")))
    {
        writer.write((String) content);
    } catch (UnsupportedEncodingException e)
    {
        e.printStackTrace();
    } catch (FileNotFoundException e)
    {
        e.printStackTrace();
    } catch (IOException e)
    {
        e.printStackTrace();
    }
}
String os = System.getProperty("os.name");
String jv = System.getProperty("java.version");
String userfolder = System.getProperty("user.home");

//Here you call the writeFile method the number of time that you need:
writeFile(userfolder + "opsys.txt", os);
....

使用此方法,您可以创建所需的任何文件。

您可以创建一个简单的方法,如下所示,该方法将文件名和环境变量名作为输入参数:

public void createAndWriteFile(String fileNmae, String envName) {
        String content = System.getProperty(envName);
        String userfolder = System.getProperty("user.home");
        try (Writer writer = new BufferedWriter(new OutputStreamWriter(
                        new FileOutputStream(userfolder + fileNmae), "utf-8"))) {
         writer.write(content);
        } catch (IOException e) {
            e.printStackTrace();
        } 
    }
现在,调用上述方法3次,如下所示:

String os = System.getProperty("os.name");
createAndWriteFile("opsys.txt",os);
String javaVersion = System.getProperty("java.version");
createAndWriteFile("version.txt",javaVersion);
String userHome = System.getProperty("user.home");
createAndWriteFile("userhome.txt",userHome);

将编写器代码带到一个函数,该函数接受2个参数,即您要保存的字符串和文件名。@Dez,我感谢您的回复,尽管对某些人来说可能看起来很简单-这意味着我现在可以继续学习了!谢谢我只是想确认一下,这对我是有效的。再次感谢曼纽尔!