How easy to read and write from file on Android

Monkey Forums/Monkey Beginners/How easy to read and write from file on Android

MonkeyPlotter(Posted 2015) [#1]
Or would it be easier to take the plunge into developing an online database that folk could upload their data to that a HTML5 app could access...

I know the whole nausea that could be entailed within the statement I nonchalantly made there (JSON, cheeky bit of mysql amongst other things) - I'd love to just access raw files that I've parsed on an Android device for local use.

This seems like a good jumping off point:

http://www.monkey-x.com/Community/posts.php?topic=8696&post=90465&view=all#90465

This is exciting....

[EDIT] Whilst I've initially achieved stuff quite quickly in HTML5, should I stop with my HTML5 and instead focus upon more Android esque dev? Or stay on the HTML5 bus for a while longer until I'm ready to hop on the Android dev bus?


Soap(Posted 2015) [#2]
Do you have an Android device for testing?

By read/write a file you mean a local file system for single player? HTML5 supports saving and loading data locally too but not all the same filesystem features other targets support.

What exactly are your goals?


MonkeyPlotter(Posted 2015) [#3]
Hi Soap,

My goal is to read a .tcx file type, parse the data, store it in my own array(s) and plot some graphs. I'm carrying on with HTML5 development at the moment (still very early days) - I have an ASUS Android tablet for testing purposes - although the driver just failed to install for it which is of concern. Still, onwards and upwards.

I suppose as an alternative to accessing a tcx file locally (which I intend to do for development purposes in the first instance) the aspiration maybe to access files remotely, say within a dropbox account. Ambitious I know....


Steve Ancell(Posted 2015) [#4]
As far as I remember, for Android, you have to handle storage as one long string with SaveString and LoadString. Unless that has been changed during any recent updates of course.


Steve Ancell(Posted 2015) [#5]
Here's a loader class that I made quite a while back, I've used it in Flash and HTML5 targets so far, but I don't see any reason why it shouldn't work on Android.

I will get around to adding a save method at some point when I feel the need to, but it shouldn't be too hard to do that yourself if you can't wait.

Class C_FileLoader
	Field fileData:String[]
	Field currentLine:Int
	
	
	Method New(fileName:String)
		fileData = LoadString(fileName).Split("~n")
		currentLine = 0
		
	End
	
	
	Method ReadLine:String()
		Local currentData:String
		
		
		if Eof() = False
			currentData = Self.fileData[Self.currentLine]
			currentLine = (currentLine + 1)
			
		Else
			currentData = "Data Exhausted!"
			
		EndIf
		
		Return currentData.Trim()
		
	End
	
	
	Method Eof:Int()
		if Self.currentLine > (fileData.Length() - 1)
			Return 1
			
		Else
			Return 0
			
		EndIf
		
	End
	
	
	Method LineCount:Int()
		Return Self.fileData.Length()
		
	End
	
	
	Method ByteCount:Int()
		Local bytes:Int = 0
		Local line:Int
		
		
		For line = 0 To (Self.fileData.Length() - 1)
			bytes = (bytes + Self.fileData[line].Trim().Length())
			
		Next
		
		Return bytes
		
	End
	
	
	Method Empty:Void()
		Local counter:Int
		
		
		For counter = 0 to (fileData.Length() - 1)
			fileData[counter] = ""
			
		Next
		
		fileData = fileData.Resize(0)
		
	End
	
End



Steve Ancell(Posted 2015) [#6]
If what I posted above don't work then look into SaveState and LoadState. You will have to handle things a lot differently with those commands though.