스크린샷 소스

JAVA 2016. 5. 10. 11:55
public screenCapture(String imgPath, String imgName){
		
	try {

		Robot robot = new Robot();

		//모니터 화면 크기 가지고 오는 객체
		Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();

		//모니터의 화면을 selectRect에 가로,세로 표현
		Rectangle selectRect = new Rectangle((int)screen.getWidth(), (int)screen.getHeight());

		BufferedImage buffimg = robot.createScreenCapture(selectRect);

		File screenfile = new File(imgPath+"/"+imgName+".jpg");

		ImageIO.write(buffimg, "jpg", screenfile);

	} catch (AWTException e) { 
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	} 
}
반응형
Posted by 질주하는구
,

해당 내용을 잘 정리 해주신 블로그가 있어 해당 링크를

올려 놓습니다.


http://zero-gravity.tistory.com/251

반응형

'JAVA' 카테고리의 다른 글

itext이용해서 pdf파일 만드는 샘플 소스  (0) 2016.10.25
스크린샷 소스  (0) 2016.05.10
트위터 연동(java 소스기준 로그인)  (0) 2016.03.01
java encodeURIComponent 메소드  (0) 2016.02.18
ArrayList sor하기  (0) 2015.11.26
Posted by 질주하는구
,

트위터 연동을 위해서 

https://apps.twitter.com/app 페이지에 사용할 앱을 생성 합니다.


기본 정보등을 입력 하고 Keys and Access Tokens / Permissions 2가지 부분만 처리 해주시면 됩니다.

우선 Permissions 으로 이동 후 권한을 Read, Write and Access direct messages 으로 선택 합니다.




그 후 Keys and Access Tokens 이동해서 Access Tokens을 생성 합니다.


(생성 전에는 create access token이라는 파란 버튼이 나옵니다.)


call_back.jsp


twitterLogin.jsp




프로그램 작업 전에 설정은 위와 같이 처리 하면 됩니다. java 기준으로 프로그램 작업 시

http://twitter4j.org/ko/index.html

의 jar파일을 이용해서 작업 하면 수월해 해당 패키지를 이용 하기로 합니다.

twitter4j-core-4.0.4 을 기준으로 2개의 파일이 테스트를 위해서 필요 합니다. 

login.jsp 와 call_back.jsp 파일 2개 입니다.


2개의 소스는 첨부파일을 참고로 해주시면 됩니다.

반응형

'JAVA' 카테고리의 다른 글

스크린샷 소스  (0) 2016.05.10
html화면 pdf로 변경하는 소스  (0) 2016.05.10
java encodeURIComponent 메소드  (0) 2016.02.18
ArrayList sor하기  (0) 2015.11.26
TreeMap 을 이용한 map계열 정렬  (0) 2015.11.26
Posted by 질주하는구
,

java단에서 encodeURIComponent을 사용해야 하는경우

(url 이동등을 java단에서 중계 하는 부득이한 경우가 발생 할때 한글 처리를 위해서)

public String encodeURIComponent(String s) {

String result = null;

try{

 result = URLEncoder.encode(s, "UTF-8")

.replaceAll("\\+", "%20")

.replaceAll("\\%21", "!")

.replaceAll("\\%27", "'")

.replaceAll("\\%28", "(")

.replaceAll("\\%29", ")")

.replaceAll("\\%7E", "~");

}catch (UnsupportedEncodingException e){result = s;}

return result;

}

반응형
Posted by 질주하는구
,

ArrayList sor하기

JAVA 2015. 11. 26. 13:55

Collections.sort() 메소드를 이용해서 정렬 할 수 있습니다.

Collections.sort(ArrayList) -> 오름차순

Collections.sort(ArrayList, Collections.reverseOrder()) ->내림차순

반응형
Posted by 질주하는구
,

Map계열중 TreeMap의 경우 key를 이용한 정렬이 가능 합니다.

HashMap->TreeMap으로 치환 후


Iterator<String> iteratorKey = treeMap.keySet().iterator(); ->오름차순

Iterator<String> iteratorKey = treeMap.descendingKeySet().iterator(); ->내림차순


으로 데이터를 정렬 할 수 있습니다.

반응형
Posted by 질주하는구
,
public int safeLongToInt(long l) {
	int i = (int)l;
	if ((long)i != l) {
		throw new IllegalArgumentException(l + " cannot be cast to int without changing its value.");
	}
	return i;
}
반응형
Posted by 질주하는구
,
public String clobToString(Object convertData){
	      if(convertData!=null){
	         CLOB clobData = (CLOB)convertData;
	         StringBuffer returnStr = new StringBuffer();
	         try {
	            Reader reader       = clobData.getCharacterStream();
	            char[] buff       = new char[1024];
	            int nchars          = 0;
	            while ((nchars = reader.read(buff)) > 0) {
	               returnStr.append(buff, 0, nchars);
	            }
	         }catch (SQLException e) {
	            e.printStackTrace();
	         }catch (IOException e) {
	            e.printStackTrace();
	         }
	         return returnStr.toString();
	      }else{
	         return "";
	      }
	   }
반응형
Posted by 질주하는구
,


ExcelAndChart.java

프로젝트 작업중 엑셀 파일에 차트를 추가해야 하는 경우가 있어서 관련 작업을 진행하고 

샘플 소스를 작업해서 참고하기 위해서 업로드 합니다.

참고한 jar파일은

poi-3.9.jar

poi-ooxml-3.9.jar

poi-ooxml-schemas-3.9.jar

jcommon-1.0.23.jar

jfreechart-1.0.19.jar

입니다. 설문조사가 등록된다는 기준을 가지고 각 설문별 응답에 대한 파이차트를 만들어서 해당 차트를 이미지로

저장 후 엑셀파일에 삽입후 저장하는 방식 입니다.




반응형
Posted by 질주하는구
,

파일 관련 작업을 하나의 클래스에서 처리하고 각 작업자 별로 해당 메소드를 사용하는 방식으로 

통일하기 위해서 작업중인 io관련 소스 입니다.


import java.io.File;

import java.io.IOException;


import org.apache.commons.io.FileUtils;

import org.apache.log4j.Logger;


public class FileIOUtil {

private Logger log = Logger.getLogger(this.getClass());

private String fileIoMessage;

/**

* 파일 경로를 전달 받아서 파일을 복사하는 메소드

* @param String srcFilePath 복사할 대상 파일 경로

* @param String destFilePath 복사될 파일 경로

* @return boolean 작업의 성공 여부

* */

public boolean fileCopy(String srcFilePath, String destFilePath){

boolean isSuccess = true;

File srcFile = new File(this.setFilePathReplaceAll(srcFilePath));

File destFile = new File(this.setFilePathReplaceAll(destFilePath));

try {

FileUtils.copyFile(srcFile, destFile);

} catch (IOException e) {

isSuccess = false;

log.error(e);

System.out.println("FileIOUtil > fileCopy(String srcFilePath, String destFilePath) IOException happen");

fileIoMessage = "작업중 에러가 발생 되었습니다.";

}

return isSuccess;

}

/**

* 파일을 전달 받아서 파일을 복사하는 메소드

* @param File srcFile 복사할 대상 파일

* @param File destFile 복사될 파일

* @return boolean 작업의 성공 여부

* */

public boolean fileCopy(File srcFile, File destFile){

boolean isSuccess = true;

try {

FileUtils.copyFile(srcFile, destFile);

} catch (IOException e) {

isSuccess = false;

log.error(e);

System.out.println("FileIOUtil > fileCopy(String srcFilePath, String destFilePath) IOException happen");

fileIoMessage = "작업중 에러가 발생 되었습니다.";

}

return isSuccess;

}

/**

* destFilePath 경로에 해당하는 파일에 createContent내용을 등록하는 메소드 입니다.

* fileAppend 은 이어쓰기 할지 여부를 지정하는 것으로 이어쓰기 하는경우 true를 덮어 쓰기 하고자 하는경우

* false를 입력 하면 됩니다. fileEncoding 값은 입력 하지 않아도 됩니다.

* @param String destFilePath 글을 등록할 파일 경로

* @param Stirng createContent 등록할 글 내용

* @param boolean fileAppend 파일에 글 등록시 이어붙이기 할지 덮어쓰기 할지 결정(ex>true 이어쓰기,false 덮어쓰기)

* @param String fileEncoding 글등록시 인코딩 값을 정의(ex> euc-kr, utf-8)

* @return boolean 작업의 성공 여부

* */

public boolean writingToaFile(String destFilePath, String createContent, boolean fileAppend, String fileEncoding){

boolean isSuccess = true;

File destFile = new File(this.setFilePathReplaceAll(destFilePath));

try {

if(fileAppend){

if(fileEncoding!=null && !"".equals(fileEncoding)){

FileUtils.writeStringToFile(destFile, createContent, fileEncoding, fileAppend);

}else{

FileUtils.writeStringToFile(destFile, createContent, fileAppend);

}

}else{

if(fileEncoding!=null && !"".equals(fileEncoding)){

FileUtils.writeStringToFile(destFile, createContent, fileEncoding);

}else{

FileUtils.writeStringToFile(destFile, createContent);

}

}

} catch (IOException e) {

isSuccess = false;

log.error(e);

System.out.println("FileIOUtil > writingToaFile(String destFilePath, String createContent) IOException happen");

fileIoMessage = "작업중 에러가 발생 되었습니다.";

}

return isSuccess;

}

/**

* destFile 파일에 createContent내용을 등록하는 메소드 입니다.

* fileAppend 은 이어쓰기 할지 여부를 지정하는 것으로 이어쓰기 하는경우 true를 덮어 쓰기 하고자 하는경우

* false를 입력 하면 됩니다. fileEncoding 값은 입력 하지 않아도 됩니다.

* @param File destFile 글을 등록할 파일

* @param Stirng createContent 등록할 글 내용

* @param boolean fileAppend 파일에 글 등록시 이어붙이기 할지 덮어쓰기 할지 결정(ex>true 이어쓰기,false 덮어쓰기)

* @param String fileEncoding 글등록시 인코딩 값을 정의(ex> euc-kr, utf-8)

* @return boolean 작업의 성공 여부

* */

public boolean writingToaFile(File destFile, String createContent, boolean fileAppend, String fileEncoding){

boolean isSuccess = true;

try {

if(fileAppend){

if(fileEncoding!=null && !"".equals(fileEncoding)){

FileUtils.writeStringToFile(destFile, createContent, fileEncoding, fileAppend);

}else{

FileUtils.writeStringToFile(destFile, createContent, fileAppend);

}

}else{

if(fileEncoding!=null && !"".equals(fileEncoding)){

FileUtils.writeStringToFile(destFile, createContent, fileEncoding);

}else{

FileUtils.writeStringToFile(destFile, createContent);

}

}

} catch (IOException e) {

isSuccess = false;

log.error(e);

System.out.println("FileIOUtil > writingToaFile(File destFile, String createContent) IOException happen");

fileIoMessage = "작업중 에러가 발생 되었습니다.";

}

return isSuccess;

}

/**

* srcFilePath 경로에 해당하는 파일의 내용을 읽어오는 메소드 입니다.

* fileEncoding 값은 정의하지 않아도 됩니다.

* @param String srcFilePath 읽어올 파일 경로

* @param String fileEncoding 파일 인코딩 종류(ex>euc-kr, utf-8)

* @return String 파일의 내용

* */

public String readTheFile(String srcFilePath, String fileEncoding){

String fileContent = "";

File srcFile = new File(this.setFilePathReplaceAll(srcFilePath));

try {

if(fileEncoding!=null && !"".equals(fileEncoding)){

fileContent = FileUtils.readFileToString(srcFile, fileEncoding);

}else{

fileContent = FileUtils.readFileToString(srcFile);

}

} catch (IOException e) {

log.error(e);

System.out.println("FileIOUtil > readTheFile(String srcFilePath, String fileEncoding) IOException happen");

fileIoMessage = "작업중 에러가 발생 되었습니다.";

}

return fileContent;

}

/**

* srcFile 파일의 내용을 읽어오는 메소드 입니다.

* fileEncoding 값은 정의하지 않아도 됩니다.

* @param File srcFile 읽어올 파일

* @param String fileEncoding 파일 인코딩 종류(ex>euc-kr, utf-8)

* @return String 파일의 내용

* */

public String readTheFile(File srcFile, String fileEncoding){

String fileContent = "";

try {

if(fileEncoding!=null && !"".equals(fileEncoding)){

fileContent = FileUtils.readFileToString(srcFile, fileEncoding);

}else{

fileContent = FileUtils.readFileToString(srcFile);

}

} catch (IOException e) {

log.error(e);

System.out.println("FileIOUtil > readTheFile(File srcFile, String fileEncoding) IOException happen");

fileIoMessage = "작업중 에러가 발생 되었습니다.";

}

return fileContent;

}

/**

* folderPath 경로에 해당하는 폴더를 생성하는 메소드

* @param String folderPath 생성할 폴더 경로

* @param boolean isRecursive 폴더를 생성할때 상위 디렉토리도 같이 생성할지 여부(true: mkdirs/false: mkdir)

* @return boolean 작업의 성공 여부

* */

public boolean createFolder(String folderPath, boolean isRecursive){

boolean isSuccess = true;

File newFolder = new File(this.setFilePathReplaceAll(folderPath));

if(!newFolder.exists()){

if(!newFolder.isFile()){

if(isRecursive){

newFolder.mkdirs();

}else{

newFolder.mkdir();

}

}else{

isSuccess = false;

fileIoMessage = "같은 이름의 파일이 존재 합니다.";

}

}else{

isSuccess = false;

fileIoMessage = "파일 혹은 폴더가 존재 합니다.";

}

return isSuccess;

}

/**

* newFolder 폴더를 생성하는 메소드

* @param File newFolder 생성할 폴더

* @param boolean isRecursive 폴더를 생성할때 상위 디렉토리도 같이 생성할지 여부(true: mkdirs/false: mkdir)

* @return boolean 작업의 성공 여부

* */

public boolean createFolder(File newFolder, boolean isRecursive){

boolean isSuccess = true;

if(!newFolder.exists()){

if(!newFolder.isFile()){

if(isRecursive){

newFolder.mkdirs();

}else{

newFolder.mkdir();

}

}else{

isSuccess = false;

fileIoMessage = "같은 이름의 파일이 존재 합니다.";

}

}else{

isSuccess = false;

fileIoMessage = "파일 혹은 폴더가 존재 합니다.";

}

return isSuccess;

}

/**

* filePath 경로에 해당하는 파일을 생성하는 메소드

* @param String filePath 생성할 파일 경로

* @return boolean 작업의 성공 여부

* */

public boolean createFile(String filePath){

boolean isSuccess = true;

File newFile = new File(this.setFilePathReplaceAll(filePath));

if(!newFile.exists()){

if(!newFile.isDirectory()){

try {

newFile.createNewFile();

} catch (IOException e) {

isSuccess = false;

log.error(e);

System.out.println("FileIOUtil > createFile(String filePath) IOException happen");

fileIoMessage = "작업중 에러가 발생 되었습니다.";

}

}else{

isSuccess = false;

fileIoMessage = "같은 이름의 폴더가 존재 합니다.";

}

}else{

isSuccess = false;

fileIoMessage = "파일 혹은 폴더가 존재 합니다.";

}

return isSuccess;

}

/**

* newFile 파일을 생성하는 메소드

* @param File newFile 생성할 파일

* @return boolean 작업의 성공 여부

* */

public boolean createFile(File newFile){

boolean isSuccess = true;

if(!newFile.exists()){

if(!newFile.isDirectory()){

try {

newFile.createNewFile();

} catch (IOException e) {

isSuccess = false;

log.error(e);

System.out.println("FileIOUtil > createFile(File newFile) IOException happen");

fileIoMessage = "작업중 에러가 발생 되었습니다.";

}

}else{

isSuccess = false;

fileIoMessage = "같은 이름의 폴더가 존재 합니다.";

}

}else{

isSuccess = false;

fileIoMessage = "파일 혹은 폴더가 존재 합니다.";

}

return isSuccess;

}

/**

* deleteFilePath 경로의 파일을 삭제하는 메소드

* @param String deleteFilePath 삭제할 파일 경로

* */

public void deleteFile(String deleteFilePath){

File deleteFile = new File(this.setFilePathReplaceAll(deleteFilePath));

deleteFile.delete();

}

/**

* deleteFolderPath 경로의 폴더를 삭제하는 메소드 해당 폴더 삭제시 하위 폴더 및 파일을 모두 삭제 합니다.

* @param String deleteFolderPath 삭제할 폴더 경로

* @return boolean 작업의 성공 여부

* */

public boolean deleteFolder(String deleteFolderPath){

boolean isSuccess = true;

File deleteFolder = new File(this.setFilePathReplaceAll(deleteFolderPath));

try {

FileUtils.deleteDirectory(deleteFolder);

} catch (IOException e) {

isSuccess = false;

log.error(e);

System.out.println("FileIOUtil > deleteFolder(String deleteFolderPath) IOException happen");

fileIoMessage = "작업중 에러가 발생 되었습니다.";

}

return isSuccess;

}

/**

* deleteFolder  폴더를 삭제하는 메소드 해당 폴더 삭제시 하위 폴더 및 파일을 모두 삭제 합니다.

* @param File deleteFolder 삭제할 폴더

* @return boolean 작업의 성공 여부

* */

public boolean deleteFolder(File deleteFolder){

boolean isSuccess = true;

try {

FileUtils.deleteDirectory(deleteFolder);

} catch (IOException e) {

isSuccess = false;

log.error(e);

System.out.println("FileIOUtil > deleteFolder(File deleteFolder) IOException happen");

fileIoMessage = "작업중 에러가 발생 되었습니다.";

}

return isSuccess;

}

/**

* 전달 받은 fileName 의 파일 확장자 정보를 넘겨주는 메소드

* @param String fileName 파일명

* @return String 파일 타입

* */

public String fileTypeName(String fileName){

if(fileName!=null && !"".equals(fileName)){

return fileName.substring(fileName.lastIndexOf(".")+1, fileName.length());

}else{

return "";

}

}


/**

* 파일 작업후 에러가 발생되는 경우 해당 에러의 상세 내용을 넘겨주는 메소드

* */

public String getfileIoMessage() {

return fileIoMessage;

}


public String setFilePathReplaceAll(String value) {

 

  String returnValue = value;

 

  if (returnValue == null || returnValue.trim().equals("")) {

  return "";

  }


  returnValue = returnValue.replaceAll("[.][.]/", "");

  returnValue = returnValue.replaceAll("[.]/", "");

  returnValue = returnValue.replaceAll("[.]\\\\\\\\", "");

  returnValue = returnValue.replaceAll("[.][.]\\\\\\\\", "");

  returnValue = returnValue.replaceAll("\\\\\\\\", "");

  returnValue = returnValue.replaceAll("\\\\[.]\\\\[.]", ""); // ..

  returnValue = returnValue.replaceAll("&", "");


  return returnValue;

  }

}



반응형
Posted by 질주하는구
,