2017-04-24 9 views
0

1 파일을 잘 만드는 다음 Java 8 코드가 있습니다 (파일의 내용은 단 한 줄의 텍스트입니다). 이 코드를 변경하는 가장 좋은 방법은 무엇입니까? 그래서 세 개의 텍스트 파일로 끝납니다.Java에서 여러 출력 파일에 다른 값을 쓰는 방법은 무엇입니까?

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 텍스트 파일의 version.txt opsys.txt 이름
    • 및 userhome.txt.
    • 각 파일에는 관련 System.getProperty 답변이 들어 있습니다.
+0

테이크 Writer 코드는 2 개의 매개 변수를 허용하는 함수, 저장할 String 및 fileName을 받아들입니다. – Dez

+0

@Dez, 답장을 고맙게 여기지만 일부는 곧장 보일지 모르지만 - 이제는 내 학습으로 전진 할 수 있다는 것을 의미합니다! 감사!! – BlazeUK

답변

0

별도의 방법으로 쓰기 파일에 대한 모든 기능을 넣을 수 있습니다, 뭔가 같은 : 그 후

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 회 전화 :와 같이 입력 인수로 파일 이름과 환경 변수 이름을 사용하는 아래

+0

대단히 고마워요, 이것은 많은 도움이됩니다! – BlazeUK

+0

확인 만하면됩니다. Manuel 다시 감사드립니다! – BlazeUK

0

당신은 간단한 방법을 만들 수 있습니다

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); 
+0

대단히 고마워요. – BlazeUK