0

Androidでファイルを読み込もうとしています。私はこれを Java で行うことに慣れていますが、ここでオープンに失敗した enoent (そのようなファイルやディレクトリはありません)エラーが発生します。ファイルのインポート方法がわかりません。アプリケーションと同じディレクトリに配置する必要がありますか? 今、私のデスクトップにあります。ここに私のコードがあります

package com.androidplot.fun;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile {
    private String path;
    public ReadFile(String file_path){
        path = file_path;
    }
    public String[] OpenFile() throws IOException{
        FileReader fr = new FileReader(path);
        BufferedReader textReader = new BufferedReader(fr);
        int numberOfLines = 3;
        String[ ] textData = new String[numberOfLines];
        int i;
        for (i=0; i < numberOfLines; i++) {
            textData[ i ] = textReader.readLine();
        }
        textReader.close( );
        return textData;
    }
    int readLines() throws IOException{
        FileReader file_to_read = new FileReader(path);
        BufferedReader bf = new BufferedReader(file_to_read);

        String aLine;
        int numberOfLines = 0;
        while (( aLine = bf.readLine()) != null){
            numberOfLines++;
        }
        bf.close();
        return numberOfLines;
    }

}

これは私が使用してきたクラスです。そして、これが私のメインプログラムで使用しているものです

try{
    ReadFile file = new ReadFile("/Users/jonathon/Desktop/data.txt");
    String[] aryLines = file.OpenFile();
    int x;
    for ( x=0; x < aryLines.length; i++ ) {
      System.out.println( aryLines[ i ] ) ;
    }
 }
 catch ( IOException e ) {
   System.out.println( e.getMessage() );
 }
4

2 に答える 2

1

このファイルはアプリケーションにバンドルされますか? その場合は、リソースとして含める必要があります。これを実現する方法に関する一般的な情報へのリンクを次に示します。

編集:ファイルパスを確認しました。Android エミュレーターで実行されているコードは、Windows デスクトップにアクセスできません。エミュレーターを起動し、データを転送してから、アプリケーションに「電話」からの読み取りを試みさせます。

于 2012-11-09T16:08:16.413 に答える
0

That path won't be valid. If you want to store it on the SD card, start with: Environment.getExternalStorageDirectory().getAbsolutePath();

That should return the root of the SD card, and you can put files directly in there or create your own structure under it. (Also, personally, I don't bother with the emulator unless I want to test on something my phone can't do, like a different version of Android. I plug the phone in and test strictly on that. From how clunky the emulator is, I suspect the Google developers do this too...)

于 2012-11-09T16:22:50.043 に答える