2013-02-03 2 views
0

여러 번 묻지 만 여기에 문제가 있습니다. 나는 한 줄씩 커스텀 파일 타입을 읽을 수 있기를 원한다. 그래서 나는 save와 load 같은 것을 할 수있다. 누구든지이 작업을 수행하는 방법을 보여주기 위해 작은 코드를 작성할 수 있습니까? 여기병 안에 파일을 읽으시겠습니까?

내가 그것을 읽고 싶어하는 방법입니다 :

//Here is where the code to get the file should be 

while((String text = reader.readLine()) != null) 
{ 
    if (text.startsWith("add")) 
    //ect 
} 
+0

1. 바이너리 파일이나 텍스트를 읽을해야합니까 파일? – Taky

+0

2. 파일을 여는 것이 문제가됩니까? – Taky

+0

텍스트 기반 파일을 읽으려고합니다. – user2036054

답변

1

Jar 파일은 모든 자바 컴파일 된 클래스 파일 및 기타 자료를 포함 ZIP 파일입니다. JAR 파일 내의 파일을 읽으려면 zip 파일을 읽을 수 있어야합니다. 예는 여기에 있습니다 :에서

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.Enumeration; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipFile; 

public class ReadZip { 
    public static void main(String args[]) { 
    try { 
     ZipFile zf = new ZipFile("ReadZip.zip"); 
     Enumeration entries = zf.entries(); 

     BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); 
     while (entries.hasMoreElements()) { 
     ZipEntry ze = (ZipEntry) entries.nextElement(); 
     System.out.println("Read " + ze.getName() + "?"); 
     String inputLine = input.readLine(); // your code here 

} 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    } 
} 

: 우리가 얘기하고있는 단지는 응용 프로그램이나 응용 프로그램의 종속성 중 하나라고 가정 http://www.java2s.com/Code/Java/File-Input-Output/ReadingtheContentsofaZIPFile.htm

+0

JAR 파일이 응용 프로그램 classLoader 컨텍스트 내에 있지 않은 경우 다소 힘이 들지만 필요합니다. – MadProgrammer

1

, 이것은

BufferedReader br = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream(path))); 

경로를 작동합니다 - 경로 항아리에있는 파일, 예. "/test/test.txt"

1

jar 리소스에서 파일을 열려면 : Class#getResourceAsStream을 참조하십시오.

코드 예제는 텍스트 파일을 읽을 수 있습니다 :

try { 
     InputStream in = getClass().getResourceAsStream("resource name"); // get binary stream to resource 
     // InputStream in = new FileInputStream("filePath"); //in case file loaded from the FileSystem 
     BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
     String line = null; 
     while ((line = reader.readLine()) != null) 
     { 
      if (line.startsWith("add")) { 
       // e.t.c. 
      } 
     } 
    } 
    catch (IOException e) { 
     //process exception or throw up 
    } 
Guava를 사용하여 리소스에서 파일을로드하는 것이 더 쉽습니다

:

URL url = Resources.getResource(resourceName); 
List<String> text = Resources.readLines(url, Charsets.UTF_8); 
관련 문제