자바에서 파일 읽고 단어 세기
차분나래
안녕하세요?
우선 파일을 읽어 들여 거기에 있는 단어를 세야 되는 프로그램입니다.
우선 파일을 읽어 들이는 예제를 이용해서 파일을 읽어 들이는데 성공.
import java.io.*;
class ReadFile
{
public static void main(String[] args)
{
try
{
File myFile = new File(test.txt);
FileReader fileReader = new FileReader(myFile);
BufferedReader reader = new BufferedReader(fileReader);
String line = null;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
reader.close();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
우선 이 프로그램을 컴맨드 라인으로부터 파일명을 지정 받을려면 어떻게 해야 되나요?
java test.txt
제 생각은 args.length != 1 이용해 파일명을 안 쓰거나 다르게 쓸경우, System.exit(0); 으로 나갑니다.
만약에 만족할 경우, 그 같은 myfile에 넣어야 되는데,,,,,, 어떻게 해야져?
while 룹 안에 한줄 읽어 들인 것을 쪼개야 되는데, StringTokenizer 로 해볼려니 잘 안 되더군요.
저의 생각은 쪼개진 단어를 어레이 0부터하나씩 넣고 while 를 나가면 어레이의 제일 마지막 + 1 값이 총 단어의 갯수.
도와 주세요...
그리고 만약 파일을 못 읽었을 경우, 메세지를 스탠다드 에러 아웃 스트림으로 써야 되는데 어떻게 해야 되냐요??
부탁 드립니다.
-
초엘
StringTokenizer하실때 api보면 몇개가 나왔는지 알수있는 메소드 있습니다.
그 메소드를 이용해서 배열을 만들어서 넣어주시면 됩니다.
모를때 제일 좋은 방법은 단계마다 System.out.println(필요한변수); 해서 찍어보세요.
중간 중간 찍어보면 원하지 않는값이 보일때 그에 따라 대처 하면 됩니다. -
쌍둥이자리
파일명 지정은
if(args.length != 1) {
System.out.println(\사용법 : java ReadFile 파일명\);
System.exit(0); } 이런 조건을 걸어주시면 될 것같고여
단어와 단어사이에 정해진 구분기호가 있다면(,쉼표나 빈칸)
StringTokenizer(line, \구분기호\) 으로 잘라내면 될것같습니다.
에러 메시지는 catch구문 안에서 출력해주시면 되겠습니다