목록자바/자바팁 (43)
올해는 머신러닝이다.
List list = new ArrayList(); Iterator iterator = list.iterator(); // while (iterator.hasNext()) { for (Iterator iterator = list.iterator(); iterator.hasNext();) { String string = iterator.next(); if (string.isEmpty()) { // Remove the current element from the iterator and the list. iterator.remove(); } }
public static String implode(String separator, String... data) { StringBuilder sb = new StringBuilder(); for (int i = 0; i to not add separator at the end if (!data[i].matches(" *")) {//empty string are ""; " "; " "; and so on sb.append(data[i]); sb.append(separator); } } sb.append(data[data.length - 1].trim()); return sb.toString(); }You can use it likeSystem.out.println(implode(", ", "ab", " "..
로컬에서 할 땐 정말 쉽게 잘 됐는데 서버에 올릴땐 종나 안되서 삽질 이빠이 하고 내용 적어놓는다. JSP 단독 톰캣 호스팅 하는 분들은 아래와 같이 하면 대충 다 맞을것이다. 서버 셋팅시 JNDI 설정방법 (CAFE24) * 예제에 사용된 jdbc/mytc5의 mytc5 는 고객님 계정명과 같은 것으로 임의 변경하셔도 됩니다. [server.xml] tomcat/conf/server.xml에서 주석된 설정을 다음과 같이 변경합니다. (중요) 하단에 Context 태그 사이에 꼭 넣어야 작동함 [web.xml]WEB-INF/web.xml에서 다음을 추가합니다. jdbc/mytc5 javax.sql.DataSource Container * Tomcat 호스팅의 tomcat 7 이용 시 추가사항[contex..
출처 : http://qortn.tistory.com/225 Java 예제 - Queue(큐) Class 지난번엔 Stack(스택) 클레스에 대해 알아봤습니다. 이번엔 Stack class 와는 반대 개념인 Queue(큐) 클래스에 대해 알아보겠습니당!! 위의 그림에서 보듯이 요소를 데어티 구조의 양쪽 단에서만 저장 / 접근 할수 있는 컬렉션 입니다. FIFO ( First - In - First - Out ) 구조로 위아래 양쪽 구멍이 뚫려 있어 쉽게 말해 "밑 빠진 독" 이라고 볼수 있습니다(물론 줄줄 새진 않죠 ^^;;) 이렇게 들어오는곳과 나오는곳이 다르기 때문에 Queue(큐)에 먼저 들어간 데이터가 가장 먼저 나오게 됩니다^^ Queue(큐) 클래스 인스턴스를 생성하기 위해선 아래와 같이 "L..
public class CloneMainCls { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { MyNumbers mn = new MyNumbers(); MyNumbers mn2 = (MyNumbers) mn.clone(); mn2.getNumbers()[1] = 3; System.out.println(mn.getNumbers()[1] + ":" + mn2.getNumbers()[1]); } catch (Exception e) { e.printStackTrace(); } } } class MyNumbers implements Cloneable{ private int[]..
일단 svn 저장소는 최신 소스를 유지하는 trunk가 있고 trunk에서 분리되어 나온 branch라는 것이 있습니다 이름만 다를 뿐 실제로는 각각 하나의 디렉토리라고 보셔도 됩니다. 개발 팀마다 svn저장소를 사용하는 방법이 조금씩 다르기 때문에 어떻게 사용하는 것이 맞다고 말씀드리긴 힘듭니다. 제가 사용하는 방법을 예를 들어보겠습니다. HelloWorld라는 프로젝트를 SVN저장소에 생성합니다. 그리고 프로젝트의 소스들을 trunk에 저장합니다. 해당 프로젝트에 A라는 기능을 추가하기로 결정되었습니다. 그러면 trunk에 있는 최신 소스를 그대로 복사하여 A라는 branch를 생성합니다. 이 시점에서 trunk와 A branch는 동일합니다. 이제 A에 있는 소스들을 여러사람이 함께 수정합니다. 기..
출처 : http://devhome.tistory.com/10 FileChannel은 java.nio.channels.FileChannel 에 존재하는 새로운 io 패키지중의 하나이다.파일 접근적인 속도면에서는 java.io 에서 제공하는 다른 패키지에 비해 성능이 우수하다.아직은 많이 보편적으로 사용하는 패키지가 아니어 많은 자료를 구하지 못해 간단한 파일을 읽는 방법을 소개한다.[ 파일읽기 예제소스 ]view sourceprint?01.import java.io.File;02.import java.io.FileInputStream;03.import java.io.IOException;04.import java.nio.ByteBuffer;05.import java.nio.channels.FileChan..
NIO가 무엇일까요? NonBloking Input-Output 입니다. 기존의 일반 IO는 항상 블럭화가 되면서, 처리를 해왓습니다. 블럭화가되면 그블럭이 풀리기전까진 아무것도 수행할수 없지요. 그래서 그것이 큰 단점이기도 하지요.NIO는 JDK 1.4 이전에는 존재 하지 않는 방법론입니다. 그 이후에 생긴 방법론이므로 참고 하시면 되구요.어쨋든 그래서 NIO가 무엇이냐면.. 블럭화(잠수)를 타지않고 작업을 할수있게 해주는 방법론이에요.서버가 존재하고 통신을 할때 메인스레드가 블럭화(잠수)를 타버리면 그 블럭화가 풀리기전까진 아무것도 못하잖아요..?이것은 블럭을 시키지않고서, 누가 들어오던지 자료를 요청하던지 블럭 시키지않고 그냥 무작정 일만 처리시키는것이죠.하나 이상적인 예를 들어볼가요?사장 ..
출처 : http://blog.naver.com/skyadult?Redirect=Log&logNo=20025986907 14. ServerSocketChannel 클래스와 SocketChannel 클래스 이제 실전에 들어가기 전에 ServerSocketChannel 클래스와 SocketChannel 클래스에 대해 먼저 알아보자. 이들은 net패키지의 ServerSocket클래스와 Socket클래스를 채널로서 다루고자 할 때 쓰는 SelectableChannel이다. 이들 네트워크 관련 채널들은 독자적으로 소켓의 역할을 대처하지는 않는다. 대신 소켓 클래스를 내부에 가지고 있으면서 이들의 기능을 채널화하는데 적절히 이용하게 된다. 1> ServerSocketChannel 클래스 ① ServerSocketC..
The SequenceInputStream class allows you to concatenate multiple InputStreams. The construction of aSequenceInputStream is different from any other InputStream. A SequenceInputStream constructor uses either a pair of InputStreams or an Enumeration of InputStreams as its argument:SequenceInputStream(InputStream first, InputStream second) SequenceInputStream(Enumeration streamEnum) Operationally, ..
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipInputStream;import java.util.zip.ZipOutputStream;import org.apache.commons.lang.StringUtils;public class ZipUtils {private static final int COMPRESSION_LEVEL = 8;private static final int BUF..
출처 : http://stackoverflow.com/questions/1197729/retrieve-post-parameters-only-java public boolean isInQuery(HttpServletRequest request, String key) { String query = request.getQueryString(); String[] nameValuePairs = query.split("&"); for(String nameValuePair: nameValuePairs) { if(nameValuePair.startsWith(key + "=")) { return true; } } return false; }
출처 : http://take0415.blog.me/60128721068 public class Sample2 { public Sample2() { } public static void main(String[] args) { Tmp tmp1 = new Tmp(); tmp1.setTmp(" s t r i n g "); System.out.println(tmp1.getTmp()); Tmp tmp2 = new Tmp(); tmp2.setTmp(1); System.out.println(tmp2.getTmp()); } } class Tmp { private T tmp = null; public T getTmp() { return tmp; } public void setTmp(T tmp) { this.tmp = t..
SWT를 본격적으로 시작하기에 앞서서~ Eclipse에서 SWT를 쉽게 사용할 수 있는게 없을까... 하고 찾아봤더니~ 있더라~ ㅋㅋㅋ 게다가 아주 잘 설명해놓은 블로그 포스팅까지 발견! 블로그 쥔장님 캄사캄사해요~ - Eclipse에서 SWT Designer 사용하기 - 첫번째. http://huikyun.tistory.com/221 - Eclipse에서 SWT Designer 사용하기 - 두번째. http://huikyun.tistory.com/222 - Eclipse에서 SWT Designer 사용하기 - 세번째. http://huikyun.tistory.com/223 . . . . . . . 점심 먹고와서 포스트를 따라해보려고 했는데...................... ㅡㅡ; 포스팅에서 언급한..
참고 사이트 #2 http://coozplz.blogspot.com/2011/09/java-active-directory.html import java.util.HashMap; import java.util.Hashtable; import java.util.Map; import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.NamingException; import javax.naming.directory.Attribute; import javax.naming.directory.Attributes; import javax.naming.directory.SearchControls; import javax.na..
출처 : http://evilimp.tistory.com/380 AD(ldap) 테스트용 Java 코드 어제 구글링을 하다가 SF에서 찾은 소스.... import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.directory.Attributes; import javax.naming.directory.SearchControls; import javax.naming.directory.SearchResult; import javax.naming.ldap.InitialLdapContext; import javax.naming.ldap.LdapContext; pu..
1. Java Server import! java.io.BufferedReader; import! java.io.File; import! java.io.FileOutputStream; import! java.io.InputStreamReader; import! java.net.ServerSocket; import! java.net.Socket; public class TCPServer implements Runnable{ public static final int serverPort = 10200; @Override public void run(){ try{ System.out.println("대기중.."); ServerSocket serverSocket = new ServerSocket(serverPo..
출처 : http://endroid.tistory.com/entry/JAVASocket-Image-%EC%A0%84%EC%86%A1 두 가지의 경우가 있겠죠.. 1. 서버가 java이고 클라이언트는 다른 언어인 경우. 2. 서버와 클라이언트 모두 java로 구현하는 경우. 각각 다른 방식으로 프로그래밍을 할 수 있습니다. 1의 경우가 좀더 범용적이겠죠.. 두 가지를 모두 말씀드리겠습니다. - 1번의 경우... 일반적으로 통신은 byte 단위로 이루어집니다. 따라서 file을 읽으면 Image 클래스로 읽지 마시고, FileInputStream으로 읽으셔서 byte 단위로 전송하는 방법입니다. 전송할 파일의 크기를 클라이언트쪽에서 알 수 없으므로, 먼저 파일의 크기를 전송하고, 파일의 내용을 보내게 됩니다..
출처 : http://cafe.naver.com/javacircle.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=36277& Socket을 이용한 서버로 파일 송수신 예제 입니다. // FileServer.java import java.net.ServerSocket; import java.net.Socket; import java.io.*; public class FileServer implements Runnable{ private final int PORT = 25573; public static void main(String[] args) { new Thread(new FileServer() ).start(); } public void run() { ServerS..
출처 : http://www.rgagnon.com/javadetails/java-0542.html A client module connects to a server then a file is sent to the client. This exemple is very simple with no authentication and hard-coded filename!First a server module. import java.net.*; import java.io.*; public class FileServer { public static void main (String [] args ) throws IOException { // create socket ServerSocket servsock = new Se..
Socket s = new Socket ("123.112.221.111", 7777); boolean result = s.isConnected(); if(result) System.out.println("서버에 연결됨"); else System.out.println("서버에 연결실패");
package org.kodejava.example.util; import java.util.Properties; import java.util.Map; import java.util.HashMap; import java.util.Set; public class PropertiesToMap { public static void main(String[] args) { // // Create a new instance of Properties. // Properties properties = new Properties(); // // Populate properties with a dummy application information // properties.setProperty("app.name", "HT..
네이버에서 SVN 서버도 제공한다고 한다. 사용 방법을 정리해 보려했으나 아래에 정리가 더 잘 되있다. 참고 페이지 : http://blog.ithcity.com/55 여기에 이클립스에 svn 설치 방법이 없어서 추가한다. 1. http://subversion.tigris.org 접속 2. IDE 환경에서 eclipse 선택 3. donwlaod and install 선택 4. eclipse update site (http://subclipse.tigris.org/update_1.6.x)복사 5. eclipse를 켠 후 Help - Install New Software 추가 및 모두 추가하고 next 6. SVN repository exploring 선택 7. SVN repositories 창 생성 확인..
http://mainia.tistory.com/512
출처 : http://cafe.naver.com/ccjmaster.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=133 ========================================================================================= 자바에서 처리하는 입력과 출력은 스트림(Stream)에 의존하다. 다시 말해 모든 형태의 입력과 출력은 1byte의 흐름으로 이루어져 있다는 이야기이다. 그런데 이러한 작업 처리를 텍스트 기반으로 한 형태로 바꿔 준다든지, 객체 기반으로 한 형태로 바꾸어 준다든지 하는 클래스가 있다. 우리는 먼저 1byte의 기본 입력과 출력 클래스 몇 가지를 공부하고 다음으로 각 형태로 변경시키는 클래스를 살..
컬러 이름 16진수 red #FF0000 crimson #DC143C firebrick #B22222 maroon #800000 darkred #8B0000 brown #A52A2A sienna #A0522D saddlebrown #8B4513 indianred #CD5C5C rosybrown #BC8F8F lightcoral #F08080 salmon #FA8072 darksalmon #E9967A coral #FF7F50 tomato #FF6347 sandybrown #F4A460 lightsalmon #FFA07A peru #CD853F chocolate #D2691E orangered #FF4500 orange #FFA500 darkorange #FF8C00 tan #D2B48C peachpuff..
[출처] : http://bluejames77.blog.me/80015770905 자바에서 압축을 할려면 ZipInputStream과 GZIPInputStream을 써야 합니다. 이것을 이용해서 압축하는 예제를 JUNIT으로 만들어 보았습니다. 일단 예제를 보여드리기에 설명을 드리겠습니다. 1. ZipInputStream과 GZIPInputStream과의 차이점은 무엇인가요? => 쉽게 zip은 원도우에서 gzip은 유닉스나 리눅스에서 쓴다고 보시면 됩니다. 그러나 원도우에서도 gzip으로 압축해도 됩니다. gzip으로 하면 한글도 잘 압축됩니다. zip은 한글 압축이 안되는데 이것은 따로 말씀드리도록 하겠습니다. 그리고 zip은 여러개를 한꺼번에 압축이 가능합니다. gzip은 지원이 안됩니다. 2. j..
ListDataEvent.CONTENTS_CHANGED /*Type: Interval Added , Index0: 0 , Index1: 0 [First, a, b, c, d] Type: Interval Added , Index0: 5 , Index1: 5 [First, a, b, c, d, Last] Type: Interval Added , Index0: 3 , Index1: 3 [First, a, b, Middle, c, d, Last] Type: Contents Changed , Index0: 0 , Index1: 0 [New First, a, b, Middle, c, d, Last] Type: Contents Changed , Index0: 6 , Index1: 6 [New First, a, b, ..
사용법 : File file = new FileRenamePolicy().rename(new File(원하는 파일명)); ============================================================================== import java.io.File; import java.io.IOException; public class FileRenamePolicy { public File rename(File f) { //File f는 원본 파일 if (createNewFile(f)) return f; //생성된 f가 //확장자가 없는 파일 일때 처리 String name = f.getName(); String body = null; String ext = null;..
Introduction to Object SerializationJava object serialization is used to persist Java objects to a file, database, network, process or any other system. Serialization flattens objects into an ordered, or serialized stream of bytes. The ordered stream of bytes can then be read at a later time, or in another environment, to recreate the original objects. Java serialization does not cannot occur fo..