0

glassShader.vert次のメソッドからファイルを呼び出していますが、FileNotFoundExceptionエラーが発生します

複雑な問題は、このメソッドを含むクラスが、パッケージ内GLGridRendererのディレクトリにあることです。GridLogincom.jasfiddle.AmazingInterface

したがって、ディレクトリをアドレス指定するには、次のようになりますcom.jasfiddle.AmazingInterface.GridLogin

しかし、GridLogin内にあるshader.vertを呼び出す方法がわかりません

  public static String readShaderFile(String filepath) throws IOException {
    FileInputStream stream = new FileInputStream(new File(filepath));
    try{
        FileChannel fc = stream.getChannel();
        MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
        return Charset.defaultCharset().decode(bb).toString();
    }
    finally{
        stream.close();
    }
}
4

2 に答える 2

0

raw 以外にも、アセット フォルダーを使用できます。リンクを参照してください....

try {
                // get input stream for text
                InputStream is = getAssets().open("text.txt");
                // check size
                int size = is.available();
                // create buffer for IO
                byte[] buffer = new byte[size];
                // get data to buffer
                is.read(buffer);
                // close stream
                is.close();
                            }
            catch (IOException ex) {
                return;
            }
于 2012-06-24T06:35:23.000 に答える
0

読みたいファイルはパッケージに入れるべきではありません。リソースまたはアセットとしてパッケージ化する必要があります。たとえば、データ ファイルの場合は、それをres/rawフォルダーに入れ、適切なリソース名を付けます。Context次に、 (Activityクラスまたはクラスなど)がある場合は、入力ストリームを開くことができますView

InputStream stream = context.getResources().openRawResource(R.raw.filepath);

(これは、ファイルにres/raw/filepath.dat.

int resId = context.getResources.getIdentifier(filepath, "raw", context.getPackageName());
于 2012-06-24T06:14:23.700 に答える