import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.StringTokenizer;
public class J682_1 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
Random r = new Random();
String strb="";
// 난수 100개를 10개씩 한줄에,10줄이 있는 문자열 생성
for (int i = 0; i < 10; i++) {
if(i!=0) {
strb += "\n";}
for (int j = 0; j < 10; j++) {
strb += (r.nextInt(100) + 1) + " ";
}
}
try (BufferedWriter buf = new BufferedWriter(new FileWriter("d:/text.txt"))) {
buf.write(strb);
} catch (IOException e) {
e.printStackTrace();
}
// 여기까지 문자열을 파일에 저장
// 파일에서 숫자를 추출해서 정수배열에 넣기
try(BufferedReader buf1 = new BufferedReader(new FileReader("d:/text.txt"))){
String readString;
int[] inta = new int[100];
int i=0;
while((readString = buf1.readLine())!=null) {
StringTokenizer stk = new StringTokenizer(readString);
while(stk.hasMoreTokens()) {
inta[i++]=Integer.parseInt(stk.nextToken());
} // inta 배열에 100개의 정수 저장
}
Arrays.sort(inta); // 배열을 정렬
} catch (IOException e) {
e.printStackTrace();
}
}
}
파일의 내용은
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class J682_4 {
public static void main(String[] args) {
List<Per> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("번호 이름 전화번호 이메일입력 q누르면 입력 종료");
String str1 = sc.next();
if(str1.equals("q"))break;
String str2 = sc.next();
String str3 = sc.next();
String str4 = sc.next();
list.add(new Per(str1, str2, str3, str4));
}
try(ObjectOutputStream obj = new ObjectOutputStream
(new FileOutputStream("d:/text.dat"));
ObjectInputStream obj1 = new ObjectInputStream
(new FileInputStream("d:/text.dat"))){
obj.writeObject(list); // 리스트를 파일에 출력( 직렬화 )
System.out.println("번호 입력 >> 그 번호의 전화번호가 출력됩니다.");
int num = Integer.parseInt(sc.next()) ;
// 파일에서 리스트를 추출 ( 역직렬화 )
List<Per> list1 = (List<Per>)obj1.readObject();
System.out.println("입력하신 번호의 전화번호는 "
+ list1.get(num-1).getPhone());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Per implements Serializable {
// implements Serializable 를 붙여야 직렬화가 가능하다
String num;
String name;
String phone;
String email;
public Per(String num, String name, String phone, String email) {
super();
this.num = num;
this.name = name;
this.phone = phone;
this.email = email;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
결과는
번호 이름 전화번호 이메일입력 q누르면 입력 종료
1
우상혁
0102445
eff@fef
번호 이름 전화번호 이메일입력 q누르면 입력 종료
2
김태형
0103624
efg@kksr
번호 이름 전화번호 이메일입력 q누르면 입력 종료
3
이수연
0104669
jkrt@kjt
번호 이름 전화번호 이메일입력 q누르면 입력 종료
q
번호 입력 >> 그 번호의 전화번호가 출력됩니다.
3
입력하신 번호의 전화번호는 0104669
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class Serv {
public static void main(String[] args) {
File dir = new File("F:\\Microsoft VS Code");
File[] dir1 = dir.listFiles();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd a hh:mm");
System.out.println("날짜 시간 형태 크기 이름");
System.out.println("------------------------------------------------------");
Arrays.stream(dir1).forEach((e) -> System.out
.println(sdf.format(new Date(e.lastModified()))
+ isdirec(e) + fileleng(e) + e.getName()));
}
public static String isdirec(File f) {
if (f.isDirectory()) {
return "\t<DIR>\t";
} else {
return "\t\t";
}
}
public static String fileleng(File f) {
if (f.length() != 0) {
if (String.valueOf(f.length()).length() > 7) {
return String.valueOf(f.length()) + "\t";
} else
return String.valueOf(f.length()) + "\t\t";
} else {
return "\t\t";
}
}
}
결과