0

私はアンドロイド開発の初心者ですが、パイプラインで区切られたテキストファイルを解析できる方法があるかどうかを知りたいだけですか?

ありがとう、

4

3 に答える 3

0

ファイルを文字列に読み取り、パイプラインまたはその他の区切り文字を使用して文字列を分割するだけです。

于 2013-02-07T07:40:36.490 に答える
0

テキストファイルの内容を読みたいと思い、データ全体をパイプラインに基づいて区切られた文字列のチャンクに入れたいですか? 私が正しければ、次のコードが役に立ちます:

public class FileReader {
      private String fileType;
      FileReader (String targetFilePath){
        File file = new File(targetFilePath);
        if (!file.exists()) {
            Log.e("",targetFilePath + " does not exist.");
        } else if (!(file.isFile() && file.canRead())) {
            Log.e("",file.getName() + " cannot be read from.");
        } else {
            try {
                fileInputStream = new FileInputStream(file);
                fileBufferedInputStream = new BufferedInputStream(fileInputStream);
                //Use FileBufferedInputStream just for supporting mark()/reset() while reading 
                // reading file extension ex. java or xml or txt
                this.fileType = targetFilePath.substring(
                        targetFilePath.lastIndexOf('.') + 1,
                        targetFilePath.length());

            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                Log.e("",""+e.printStackTrace());
            }
        }
      }


/*
This method will return a arraylist of Strings which are seperated by '|' in given  txt file 
and null otherwise like if file was not text,blank.etc
*/
    public ArrayList<String> read(){ 
        if(fileType.equalsIgnoreCase("txt")){
        char currentChar;
        ArrayList<String> myStringsList ;
        while (fileBufferedInputStream.available() > 0) {
               StringBuilder stringBuilder = new StringBuilder();
               while ((currentChar = (char) fileBufferedInputStream.read()) == '|') {
                   stringBuilder.append(current);
               }
               if(null == myStringsList){
                 myStringsList = new ArrayList<String>();
               }  
               myStrings.add(stringBuilder.toString());
        }    
        }
        fileBufferedInputStream.close();
        return myStringsList ;
}


 }

上記のコードを次のように呼び出します。

FileReader fileReader = new FileReader("Path to your text file");
ArrayList<String> stringsSeperatedByPipeDelimeters = fileReader.read();
于 2013-02-07T08:02:11.957 に答える
-1

あなたもこのようなことをすることができます:

private String[] getPipedChunks(String targetFilePath){
           File file = new File(targetFilePath);
           try {
                    fileInputStream = new FileInputStream(file);
           }
           } catch (FileNotFoundException e) {
                  // TODO Auto-generated catch block
                  Log.e("",""+e.printStackTrace());
           }
           StringBuilder sb;
           while(fileInputStream.available() > 0) {

       if(null== sb)  sb = new StringBuilder();

            sb.append((char)fileInputStream.read());
       }
       String stringArray [];
       if(null!=sb){
            stringArray = sb.toString.split('|');
            // This is your String Array.


       }
       try {
          fileInputStream.close();
       }
       catch(Exception e){
           // TODO Auto-generated catch block
           Log.e("",""+e.printStackTrace());
       }
           return stringArray;
}
于 2013-02-07T08:12:45.980 に答える