2012-11-28 3 views
1

List에있는 모든 요소를 ​​파일에 저장하여 나중에 검색하려고 할 때 프로그램을 닫을 때 데이터가 손실되지 않습니다. 이것이 가능한가? 시도 할 코드를 작성했지만 원하는 것은 아닙니다. 이것은 내가 지금까지 썼던 것이다.파일에 목록 쓰기

import java.util.*; 
import java.io.*; 
public class Launch { 
    public static void main(String[] args) throws IOException { 
     int[] anArray = {5, 16, 13, 1, 72}; 
     List<Integer> aList = new ArrayList(); 
     for (int i = 0; i < anArray.length; i++) { 
      aList.add(anArray[i]); 
     } 
     File file = new File("./Storage.txt"); 
     if (!file.exists()) { 
      file.createNewFile(); 
     } 
     FileWriter fw = new FileWriter(file); 
     BufferedWriter bw = new BufferedWriter(fw); 
     for (int i = 0; i < aList.size(); i++) { 
      bw.write(aList.get(i)); 
     } 
     bw.flush(); 
     bw.close(); 
    } 
} 

제안 사항?

편집 : 파일 자체에 배열 자체를 찾고 있는데, 이것은 쓰고있는 내용입니다. enter image description here

+3

"내가 원하는 것이 아닙니다."- 원하는 것은 무엇입니까? – Abubakkar

+0

게시물의 끝 부분을 읽었으며 방금 편집했습니다. – Dan

답변

3
import java.util.*; 
import java.io.*; 
public class Launch { 
    public static void main(String[] args) throws IOException { 
     int[] anArray = {5, 16, 13, 1, 72}; 
     List<Integer> aList = new ArrayList(); 
     for (int i = 0; i < anArray.length; i++) { 
      aList.add(anArray[i]); 
     } 
     File file = new File("./Storage.txt"); 
     if (!file.exists()) { 
      file.createNewFile(); 
     } 
     FileWriter fw = new FileWriter(file); 
     BufferedWriter bw = new BufferedWriter(fw); 
     for (int i = 0; i < aList.size(); i++) { 
      bw.write(aList.get(i).toString()); 
     } 
     bw.flush(); 
     bw.close(); 
    } 
} 

나는 그것을 쓰기 전에 문자열로 INT를 변경하려면 bw.write 라인을 편집했다.

0

실제 번호를 쓰려면 대신 PrintWriter을 사용하십시오.

PrintWriter pw = new PrintWriter(new File(...)); 
pw.print(aList.get(i)); 
+0

... 또는 여전히 BufferedWriter를 사용할 수 있으며, 아래에 제안 된 @ nair.ashvin처럼 목록 항목에만'toString()'을 사용하십시오. – Isaac

0

그냥 깨끗한 해결책을 알게되었습니다. 아파치 commons-io의 FileUtils 사용.

File file = new File("./Storage.txt"); 
FileUtils.writeLines(file, aList, false); 

이미 존재하는 경우를 대비하여 파일에 추가하려는 경우 거짓을 true로 변경하십시오.