아래는 소스 코드 통짜인데 제가 뭐때문에 오류가 나는지 몰라서 전부 첨부했네요. 과제 때문인데 제출시간 다되도 제가 답답해서 묻습니다.
입력받는 부분 scanner 클래스 써도 비슷한 오류때문에 버퍼리더로 해봤는데도 오류네요.
ㅠㅠㅠㅠ
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.util.Scanner;
public class report {
public static void main(String[] args) throws IOException
{
int n;
String input;
student s1 = new student();
BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in));
s1.dump();
while(true)
{
System.out.println("모드 설정");
System.out.println("1:search 2:update 3:print 4:exit");
input = consoleReader.readLine();
n = Integer.parseInt(input);
switch(n)
{
case 1:
s1.search();
break;
case 2:
case 3:
case 4:
System.out.println("프로그램이 끝났습니다.");
System.exit(0);
}
}
}
}
class student
{
private int id; // 학번: 1 ~ 1,000,000
private char[] name = new char[10]; // 이름
private char[] dept = new char[12]; // 학과
private char[] gender = new char[2]; // F: 여자, M: 남자
private int age; // 나이
private double grade; // 평점
public void dump()
{
RandomAccessFile rdfile;
RandomAccessFile wdfile;
String fname;
String buf;
String buffd[];
int chk=65;
System.out.println("파일 이름을 입력하시오. ");
Scanner rdfilename = new Scanner(System.in);
fname=rdfilename.nextLine();
try
{
rdfile=new RandomAccessFile(fname,"r");
wdfile=new RandomAccessFile("student.dat","rw");
while((buf=rdfile.readLine())!= null)
{
buffd=buf.split(" ");
id=Integer.parseInt(buffd[0]);
wdfile.seek((id-1)*chk);
wdfile.writeBytes(buf);
}
rdfile.close();
wdfile.close();
}
catch(FileNotFoundException e)
{
System.out.println("파일을 찾을 수 없습니다.");
System.exit(1);
} catch (IOException e)
{
System.out.println("에러 발생.");
e.printStackTrace();
}
rdfilename.close();
}
public void search() throws IOException
{
BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in));
RandomAccessFile rdfile;
int Pid;
int chk=65;
String buf;
String buffd[];
String input = consoleReader.readLine();
Pid=Integer.parseInt(input);
try
{
rdfile=new RandomAccessFile("student.dat","r");
rdfile.seek((Pid-1)*chk);
buf=rdfile.readLine();
buffd=buf.split(" ");
id=Integer.parseInt(buffd[0]);
if(id>0)
{
System.out.println(buf);
}
else
{
System.out.println("학생이 없습니다. ");
}
rdfile.close();
}
catch (FileNotFoundException e)
{
System.out.println("파일을 찾을 수 없습니다.");
System.exit(1);
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
};