2017-02-02 5 views
0

私はインテントバンドルを使って送ることができないので、1つのアクティビティで一時ファイルを作成して別のものを読み込もうとしています。問題は、私はこの問題に立ち往生しているということです。androidの一時データを読む方法

私はすでに一時ファイルを作成する方法を知っている:

try{ 

     //create a temp file 
     File temp = File.createTempFile("tempfile", ".tmp"); 

    //write it 
     BufferedWriter bw = new BufferedWriter(new FileWriter(temp)); 
     bw.write("This is the temporary file content"); 
     bw.close(); 

     System.out.println("Done"); 

    }catch(IOException e){ 

     e.printStackTrace(); 

    } 

TempFilePath取得する方法:

try{ 

     //create a temp file 
     File temp = File.createTempFile("temp-file-name", ".tmp"); 

     System.out.println("Temp file : " + temp.getAbsolutePath()); 

    //Get tempropary file path 
     String absolutePath = temp.getAbsolutePath(); 
     String tempFilePath = absolutePath. 
      substring(0,absolutePath.lastIndexOf(File.separator)); 

     System.out.println("Temp file path : " + tempFilePath); 

    }catch(IOException e){ 

     e.printStackTrace(); 

    } 

そして今、私がコンテンツを読みたいが、私はthisチュートリアルを以下ましたが、それはdoesnの私は活動の延長ではないクラスの中を読み込もうとしているので、私のために働いているのでしょうか?

+0

ファイルへのパスをあるアクティビティから別のアクティビティに送信します(通常はデータを送信します).2番目のアクティビティで新しい一時ファイルを作成しません。 – Selvin

+0

私は知っています。 .getAbsolutePath(); '、今私はコンテンツを読む必要があります –

答えて

1

createTempFile()を使用してテンポラリファイルを作成した場合は、それをメモリに読み込む方法の例を次に示します。

// "temp" is what you get from createTempFile(). 
String path = temp.getPath(); 

FileReader fileReader = new FileReader(path); 
BufferedReader bufferedReader = new BufferedReader(fileReader); 
String buffer; 
StringBuilder stringBuilder = new StringBuilder(); 

while ((buffer = bufferedReader.readLine()) != null) { 
    stringBuilder.append(buffer); 
} 

// Use "stringBuilder.toString()" if you want to convert it to String. 

作成した一時ファイルがテキストファイルの場合にのみ機能します。もしそうでなければ、DataInputStreamのような何か他のものを検討したいかもしれません。

関連する問題