如何在Java中向多个输出文件写入不同的值?
我有下面的Java8代码,它创建了一个文件fine(文件中的内容是一行单独的文本)。改变代码的最好方法是什么,这样我就可以得到三个独立的文本文件如何在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
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,我感谢您的回复,尽管对某些人来说可能看起来很简单-这意味着我现在可以继续学习了!谢谢我只是想确认一下,这对我是有效的。再次感谢曼纽尔!