2017-02-04 7 views
0

私はAndroidデバイス上のテキストファイルにアクセスしようとしています。私は正常に私のコードでファイルに書き込んだり読み込んだりしていますが、私はそのファイルにアクセスして他の場所にコピーして移動できるようにしたいと考えています。Androidでファイルを作成、書き込み、読み込み、それをデバイスにアクセスする方法は?

私のコードは以下に含まれており、実行するとエラーはありません。しかし、それは私がこれを試して解決するために数多くの編集を行っただけの基本コードです。

デフォルトのメソッドonCreateでは、メソッドに含まれるデフォルトコードの後に​​createFile()、writeFile( "Hello File!")、およびreadFile()がすべて実行されます。

Context context = this; 

String autoFileName = "AutoDataFile.txt"; 
File path; 
File myFile; 

String insideText = "NOTHING"; 

public void createFile(){ 
    path = context.getFilesDir(); 
    myFile = new File(path, autoFileName); 
} 

public void writeFile(String text){ 
    try { 
     FileOutputStream stream = new FileOutputStream(myFile); 
     stream.write(text.getBytes()); 
     stream.write(",".getBytes()); 
     stream.write("Second input!".getBytes()); 
     stream.close(); 
     System.out.println("SUCCESS?: MAY HAVE WRITTEN TO FILE"); 
    } catch (Exception e){ 
     e.printStackTrace(); 
     System.out.println("ERROR: DID NOT WRITE TO FILE"); 
    } 
} 

public void readFile(){ 
    try { 
     Scanner fileStream = new Scanner(myFile); 
     insideText += " " + fileStream.useDelimiter(",").nextLine(); 
     System.out.println("SUCCESS?: MAY HAVE READ FROM FILE"); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
     System.out.println("ERROR: DID NOT READ FROM FILE"); 
    } 
} 
+0

なぜファイルを書き込んだり、読み込んだり、移動したりしたいですか?多分、あなたが何か別のやり方でやりたいことができるからです。 –

+0

計画は、アプリケーションからテキストファイルのデータを取得し、それをコンピュータに接続し、そこにドラッグアンドドロップすることです。その後、私はそれを取ってExcelファイルにインポートすることができます。私はこのようにしたいのですが、これは簡単なことです。このプロセスが発生したときにインターネット接続を持たないため、実際にはもっと複雑なことはできません。 – AtomicBrawlers

答えて

0

あなたがこれを行うことができます:

:あなたのbuild.gradleに

compile 'net.sf.opencsv:opencsv:2.3' 

をそのようにように、あなたのファイルを作る次に、あなたのマニフェスト

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

に追加

public void writeCSV(ArrayList<String> content) { 
    //Point a directory to the external storage 
    File exportDir = new File(Environment.getExternalStorageDirectory(), ""); 
    if (!exportDir.exists()) { 
     exportDir.mkdirs(); 
    } 
    //formatter for the date associated with the file name 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); 
    //inner file to be the location of the csv 
    File csv = new File(exportDir, "csvdata_" + sdf.format(Calendar.getInstance().getTime()) + ".csv"); 
    try { 
     //create the file and the writer which will append our data 
     csv.createNewFile(); 
     CSVWriter writer = new CSVWriter(new FileWriter(csv)); 
     //loop through some desired content 
     for (String s : content) { 
      //writes the string and separates by a comma (spreadsheet format) 
      writer.writeNext(s); 
     } 
     //close the writer 
     writer.close(); 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
} //end 
+0

うーん、私はこれを試したが、私はまだどこでもファイルを見つけることができません。私もcom.appname.androidフォルダを見つけることができません。あなたの携帯電話を根絶することなくこれを行う方法はありますか?私はそう思いますか? – AtomicBrawlers

+0

は[マイファイル] - > [デバイスストレージ]で、下にスクロールする必要があります – KoalaKoalified

関連する問題