'프로그래밍' 카테고리의 다른 글

포인터 사용이유  (0) 2018.12.26

 java exe 파일 만들기

(1) 이클립스로 만든 java를 JAR 배포판 만들기

http://javacrush.tistory.com/entry/java-%EB%82%B4-java-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-JAR-%EB%A1%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0?category=284815


(2) java 파일을 exe 배포판 만들기

http://javacrush.tistory.com/entry/java-JAR-%ED%8C%8C%EC%9D%BC%EC%9D%84-EXE-%ED%8C%8C%EC%9D%BC-%EB%B0%B0%ED%8F%AC%ED%8C%90-%EB%A7%8C%EB%93%A4%EA%B8%B0?category=284815

'프로그래밍 > JAVA' 카테고리의 다른 글

abstract와 Interface  (0) 2019.01.04
public static void main(String[] args)  (0) 2018.11.22
자바 OutputStream 줄바꿈  (0) 2018.08.31
JAVA 파일입출력  (0) 2018.08.30
자바 다운그레이드  (0) 2018.08.26



http://clairdelunes.tistory.com/17


줄바꿈 계속 \n으로 안되서 찾아보니까 \r\n 으로 해야한다고 한다.


1. System.out.format() 을 이용하여 %n 개행 처리.

이렇게하면 운영체제 에 맞게 처리된다.


2. (String타입 변수명).replace("\n","\r\n")

이렇게하면 윈도우 호환에 맞게끔 처리할 수 있다.


3. String line = System.getProperty("line.separator");

   str = str.replace("\n", line);

요렇게 해도 운영체제에 맞게 줄바꿈처리가 된다.


주로 3번을 많이 사용하게 되는 것 같다.



출처: http://clairdelunes.tistory.com/17 [거꾸로 바라본 세상]

'프로그래밍 > JAVA' 카테고리의 다른 글

public static void main(String[] args)  (0) 2018.11.22
java exe 파일 만들기  (0) 2018.09.01
JAVA 파일입출력  (0) 2018.08.30
자바 다운그레이드  (0) 2018.08.26
자바빈(DTO), DAO  (0) 2018.07.28


파일읽기
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
public class Main {
public static void main(String[] args) {
// 읽을 파일의 경로
String path = "C:\\test\\첨부_02.데이터 파일.txt";
// 읽은 내용이 담겨질 스트림 (byte[])
byte[] data = null;
// 읽은 내용이 변환될 문자열
String read_string = null;
/** 파일 읽기 */
InputStream in = null;
try {
// 경로를 확인하고, 파일을 오픈함
in = new FileInputStream(path);
// 읽은 내용을 담기 위한 배열은 파일의 용량만큼 사이즈를 할당한다.
// in.available() --> 열려 있는 파일의 크기
data = new byte[in.available()];
// 파일 읽기 - 파라미터로 전달된 배열 안에, 파일의 내용을 담아준다.
in.read(data);
System.out.println("[INFO] 파일 읽기 성공 >> " + path);
} catch (FileNotFoundException e) {
System.out.println("[ERROR] 저장 경로를 찾을 수 없습니다. >> " + path);
//e.printStackTrace();
} catch (IOException e) {
System.out.println("[ERROR] 파일 읽기에 실패했습니다. >> " + path);
//e.printStackTrace();
} catch (Exception e) {
System.out.println("[ERROR] 알수없는 에러가 발생했습니다. >> " + path);
//e.printStackTrace();
} finally {
if(in != null) {
try {
in.close();
} catch (IOException e) {
System.out.println("[ERROR] 파일 닫기 실패");
//e.printStackTrace();
}
}
}
// data 배열에 내용이 있다면, 문자열로 변환하여 출력
if(data != null) {
// 문자열로 변환시에는 저장된 인코딩으로 지정해 준다.
try {
read_string = new String(data, "utf-8");
System.out.println(read_string);
} catch (UnsupportedEncodingException e) {
System.out.println("[ERROR] encoding 지정 에러");
//e.printStackTrace();
}
}
}
}
view raw test.java hosted with ❤ by GitHub
파일읽기과 저장을 함께
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;
public class Main4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 읽을 파일의 경로
String path = "C:\\ecount\\data\\첨부_02.데이터 파일.txt";
// 읽은 내용이 담겨질 스트림 (byte[])
byte[] data = null;
// 읽은 내용이 변환될 문자열
String read_string = null;
/** 파일 읽기 */
InputStream in = null;
try {
// 경로를 확인하고, 파일을 오픈함
in = new FileInputStream(path);
// 읽은 내용을 담기 위한 배열은 파일의 용량만큼 사이즈를 할당한다.
// in.available() --> 열려 있는 파일의 크기
data = new byte[in.available()];
// 파일 읽기 - 파라미터로 전달된 배열 안에, 파일의 내용을 담아준다.
in.read(data);
System.out.println("[INFO] 파일 읽기 성공 >> " + path);
} catch (FileNotFoundException e) {
System.out.println("[ERROR] 저장 경로를 찾을 수 없습니다. >> " + path);
//e.printStackTrace();
} catch (IOException e) {
System.out.println("[ERROR] 파일 읽기에 실패했습니다. >> " + path);
//e.printStackTrace();
} catch (Exception e) {
System.out.println("[ERROR] 알수없는 에러가 발생했습니다. >> " + path);
//e.printStackTrace();
} finally {
if(in != null) {
try {
in.close();
} catch (IOException e) {
System.out.println("[ERROR] 파일 닫기 실패");
//e.printStackTrace();
}
}
}
// data 배열에 내용이 있다면, 문자열로 변환하여 출력
if(data != null) {
// 문자열로 변환시에는 저장된 인코딩으로 지정해 준다.
try {
read_string = new String(data, "utf-8");
String[] read_string_split = read_string.split("\n");
int first_num = sc.nextInt();
int second_num = sc.nextInt();
String[] sum_st = new String[1001];
String write_string_split ="";
String write_string_result="";
for(int i=first_num-1; i<second_num; i++) {
write_string_split +=read_string_split[i]+"\n";
int point=0;
String value_int = read_string_split[i].substring(22, 23);
if(value_int.equals("B")) {
String add_point = read_string_split[i].substring(18, 19);
if(add_point.equals("A")) {
point=5;
}else if(add_point.equals("B")) {
point=15;
}else {
point=20;
}
int sum = Integer.parseInt(read_string_split[i].substring(11, 14).trim())*point;
sum_st[i] = String.valueOf(sum);
write_string_result += read_string_split[i]+" 결과값(단가*할인포인트): "+sum+"\r\n";
}
}
//list에서 첫번째 있는 값을 구함
// ------------------------------------------------------------------------------------------
String path2 = "C:\\ecount\\data\\ans4.txt";
// 파일에 저장할 내용
String division ="----------------------------------------------------------------------------------"+"\r\n";
/** 특정 인코딩 방식 적용 */
// 객체나 배열이 선언과 할당에 대한 블록이 서로 분리되어 있을 경우
// 명시적으로 빈 영역임을 알리기 위해 null로 초기화 한다.
byte[] buffer = null;
byte[] buffer2 = null;
byte[] buffer3 = null;
// 문자열을 "utf-8"로 인코딩해서 저장 => 영어, 숫자 : 1byte, 한글 : 3byte
try {
buffer = write_string_split.getBytes("utf-8");
buffer2 = write_string_result.getBytes("utf-8");
buffer3 = division.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
System.out.println("encoding 지정 에러");
//e.printStackTrace();
}
/** 파일 저장 절차 시작 */
OutputStream out = null;
// 파일이 없으면 파일을 만들면서, 오픈시킴
try {
out = new FileOutputStream(path2, false);
out.write(buffer);
out.write(buffer3);
out.write(buffer2);
System.out.println("[INFO] 파일 저장됨 >> " + path2);
} catch (FileNotFoundException e) {
System.out.println("[ERROR] 저장 경로를 찾을 수 없습니다.");
//e.printStackTrace();
} catch (IOException e) {
System.out.println("[ERROR] 저장에 실패했습니다.");
//e.printStackTrace();
} catch (Exception e) {
System.out.println("[ERROR] 알 수 없는 에러가 발생했습니다.");
//e.printStackTrace();
} finally {
if(out != null) {
try {
out.close();
} catch (IOException e) {
System.out.println("파일 닫기 실패");
//e.printStackTrace();
} // 파일 스트림 닫기
}
}
} catch (UnsupportedEncodingException e) {
System.out.println("[ERROR] encoding 지정 에러");
//e.printStackTrace();
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("[ERROR] 찾는 데이터 범위 초과");
System.out.println("잘못된 데이터 값 입력.");
//e.printStackTrace();
}catch (IndexOutOfBoundsException e) {
System.out.println("[ERROR] 데이터가 더 필요합니다. 데이터의 범위를 더 늘려주세요.");
//e.printStackTrace();
}
}
}
}
view raw test.java hosted with ❤ by GitHub

'프로그래밍 > JAVA' 카테고리의 다른 글

java exe 파일 만들기  (0) 2018.09.01
자바 OutputStream 줄바꿈  (0) 2018.08.31
자바 다운그레이드  (0) 2018.08.26
자바빈(DTO), DAO  (0) 2018.07.28
JAVA 관련 사이트 기술 커리큘럼  (0) 2018.07.25


JAVA, JSP 버전 다운그레이드


http://mainia.tistory.com/2184

'프로그래밍 > JAVA' 카테고리의 다른 글

자바 OutputStream 줄바꿈  (0) 2018.08.31
JAVA 파일입출력  (0) 2018.08.30
자바빈(DTO), DAO  (0) 2018.07.28
JAVA 관련 사이트 기술 커리큘럼  (0) 2018.07.25
스트레티지 패턴  (0) 2018.07.23

+ Recent posts