안녕하세요~ 자바 외부텍스트파일 읽어오기 관련 질문하나 할께요~
시아
네~
자바를 시작한지 얼마 안된 초보자입니다.
그래서 여기저기 사이트에 가입하고있는데요,
그런데 아직 명확한 답을 얻지 못해서요
정중히 질문 하나 하겠습니다^^
우선 외부 텍스트 파일을 읽어와서 배열로 출력하는것.
1개의 텍스트 파일을 읽어와서 출력하는것은 쉽게 코딩 할 수 있더라구요.
그런데
2개의 텍스트 파일을 읽어와서 한 배열로 출력하는 것은
이거 뭔..
아무리 앉아서 쳐다보고있어도
저 혼자 할 수 있는 수준이 아닌듯 해서..^^;;
다시말해서 제가 한번 해보고 싶은것은
예를들어
data1.txt 파일에
32
45
67
이런식으로 숫자가 있고 (배열로 따지면 3행 1열이죠)
data2.txt파일에
59
83
34
이런식으로 숫자가 있으면, (역시 3행 1열입니다.)
32 59
45 83
67 34
이렇게 한번에 3행 2열 배열로 출력할 수 있게 하고 싶습니다.
책을 뒤져봐도 1개의 txt파일을 읽어오는것만 있지
2개이상은 없더라구요
아래부터는 제 허접한 코딩들이구요
한번 주욱 봐주시고
package test;
import java.io.*;
import java.util.*;
public class ex2{
static string[] test;
public static void main (string[] args) {
vector list = new vector();//test배열에 저장 하기 백터 지정
filereader fin = null;bufferedreader in = null;
stringtokenizer st = null;
system.out.println(column 1| column 2);
system.out.println(==================);
try {
fin = new filereader(c:/test/data1.txt); 여기서부터 잘 모르겠습니다.
in = new bufferedreader(fin);
fin = new filereader(c:/test/data2.txt);
in = new bufferedreader(fin);
string str = null;//test.txt파일에서 받아온 값을 저장 하기 위한 변수
while ((str=in.readline())!=null){//파일에서 한줄씩 str에 저장함
st = new stringtokenizer(str);
while(st.hasmoretokens()){
list.add( st.nexttoken());
}
while ((str=in.readline())!=null){//파일에서 한줄씩 str에 저장함
st = new stringtokenizer(str);
while(st.hasmoretokens()){
list.add( st.nexttoken());
}
}
ex2.test=new string[ list.size()];//배열 크기 지정 해주기
for(int i=0;i ex2.test.length;i++){
ex2.test[i]=(string)list.elementat(i);
} for(int i=0;i ex2.test.length;i++){//배열에 제데로 들어갔는지 확인 하는 for문
system.out.println(ex2.test[i]);
}
}}catch (ioexception e) {
e.printstacktrace();}
finally {
try {
if (fin != null)
fin.close();
}catch (ioexception e) {
e.printstacktrace();
system.out.println(test[1]);
}
}
}
}
제가 생각한 바로는
배열은 하나만 존재하고 (x행 2열 )
1행 1열에 data1.txt에서 받은 숫자, 2열에 data2.txt 에서 받은 숫자를 출력하고
다음행 다음행 이렇게 가는 걸로 생각을 했는데,
이게 가능한가요?
아니면 아예 배열을 2가지로 해서
그 2가지를 한줄에 한행씩 표현해야 할까요??
많은 답변 부탁드릴께요~~
-
핑크펄
버섯수다님 말처럼 파일을 하나씩 읽어와서 백터나 배열에 저장하세요.
제가 짠다면 파일 읽어서 배열에 저장하는 메소드 하나와 두개의 배열을 넣었을때 배열의 크기가 같다면 위와같이 프린트하는 메소드를 만들어서 할거같네요. -
아메
아.. 이분도 저랑 같은 수업 들으시는분일지 모른단 생각이 ㅋㅋㅋㅋㅋㅋㅋ
-
상처주지마
당연히, 1개의 파일을 읽어와서 나름대로의 알고리즘을 적용하셔서 해결해야 합니다.
배열을 쓰시든, 맵을 쓰시든 읽어온 내용을 저장할 공간을 할당하신후에
해당 위치에 읽어온 내용을 저장하셔서 출력하실때 조절 하시면 됩니다.
위 소스는 좀 문제가 많아서 간단히 개념을 위 소스코드로 설명한다면...
Vector list 를 Vector list1과 Vector list2 처럼 2개 선언하시고..
첫번째 파일을 읽어서 라인별로 내용을 list1에 모두 add