Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

93
LINES

< > BotCompany Repo | #1000411 // Testing file I/O on Android

JavaX source code (Android) - run with: the app

import android.widget.*;
import android.view.*;
import android.content.Context;
import android.app.Activity;
import java.util.Timer;
import java.util.TimerTask;
import java.io.*;

public class main {
  static class Lg {
    Activity context;
    ScrollView sv;
    TextView tv;
    StringBuilder buf = new StringBuilder();
    
    Lg(Activity context) {
      this.context = context;
      sv = new ScrollView(context);
      tv = new TextView(context);
      tv.setText(buf.toString());
      sv.addView(tv);
    }
    
    View getView() {
      return sv;
    }
    
    void print(final String s) {
      context.runOnUiThread(new Runnable() {
        public void run() {
          buf.append(s);
          tv.setText(buf.toString());
        }
      });
    }
    
    void println(String s) {
      print(s + "\n");
    }
  }
  
  static Lg lg;
  
  public static View main(final Activity context) {
    lg = new Lg(context);
    
    OutputStream outputStream = new OutputStream() {
      public void write(int b) {
        try {
          lg.print(new String(new byte[] {(byte) b}, "UTF-8")); // This is crap
        } catch (UnsupportedEncodingException e) {}
      }
      
      @Override
      public void write(byte[] b, int off, int len) {
        try {
          lg.print(new String(b, off, len, "UTF-8")); // This is crap
        } catch (UnsupportedEncodingException e) {}
      }
    };
    
    PrintStream ps = new PrintStream(outputStream, true);
    System.setOut(ps);
    System.setErr(ps);
    
    new Thread() {
      public void run() {
        try {
          String file = "input.txt";
          // Fails - "read-only file system, /input.txt"
          // FileOutputStream out = new FileOutputStream(file);
          FileOutputStream out = context.openFileOutput(file, Context.MODE_PRIVATE);

          PrintStream ps = new PrintStream(out);
          ps.println("hello");
          ps.close();
          out.close();
          System.out.println("Wrote to " + file);
          
          //FileInputStream in = new FileInputStream(file);
          FileInputStream in = context.openFileInput(file);
          int b = in.read();
          in.close();
          System.out.println("Read from " + file + ": " + (char) b);
        } catch (Throwable e) {
          e.printStackTrace();
        }
      }
    }.start();
    
    return lg.getView();
  }
}

Author comment

Began life as a copy of #1000406

download  show line numbers  debug dex  old transpilations   

Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1000411
Snippet name: Testing file I/O on Android
Eternal ID of this version: #1000411/1
Text MD5: 7c2258926be61a79868e250091d1d321
Author: stefan
Category: javax android
Type: JavaX source code (Android)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2015-08-03 15:14:16
Source code size: 2474 bytes / 93 lines
Pitched / IR pitched: No / Yes
Views / Downloads: 681 / 540
Referenced in: #3000382 - Answer for ferdie (>> t = 1, f = 0)