0

これは何度も尋ねられていることは知っていますが、ここで問題が発生しています。保存や読み込みなどを実行できるように、カスタム ファイル タイプを 1 行ずつ読み取れるようにしたいと考えています。これを行う方法を示すために、誰かが小さなコードを書くことができますか?

ここに私がそれを読みたかった方法があります:

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

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

3 に答える 3

1

Jar ファイルは、Java でコンパイルされたすべてのクラス ファイルとその他の素材を含む 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

于 2013-02-03T05:14:13.673 に答える
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);
于 2013-02-03T05:25:58.483 に答える
1

私たちが話しているjarがアプリケーションまたはアプリケーションの依存関係の1つであると仮定すると、これは機能するはずです

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

path - jar 内のファイルへのパス、たとえば「/test/test.txt」

于 2013-02-03T05:19:33.917 に答える