开发者

How to download only the first part of a .csv file on Android?

开发者 https://www.devze.com 2023-01-24 09:39 出处:网络
In my app, I have to present a few numbers from a .csv file that\'s accessible from the web. Now, this .csv is quite big. I don\'t want to download and process the whole thing, there\'s no point. My n

In my app, I have to present a few numbers from a .csv file that's accessible from the web. Now, this .csv is quite big. I don't want to download and process the whole thing, there's no point. My numbers are always in the beginning of the file, in well specified positions - lets say position 5 to 10.

Could you give me some tips on how to implement this? I know 开发者_高级运维how to download the whole thing, but don't know how to download only a part of it.

Thanks.


Psuedo:

BufferedReader br = new BufferedReader (new InputStreamReader(remoteStream));
String sFirstLine = br.readLine();

remoteStream is the stream of the connection to the remote server. Getting a handle to the stream is not the same as actually downloading. Only the BufferedReader.readLine() actually downloads anything


Do you have access to the server the file is on? You could do your processing on the server.

For example, if the file is at /myfile.csv, you could open a stream to mycsvfile.php on the server, which does the processing and returns the positions you're interested in. Of course you'd also have to write the PHP code (or whatever) to do this.


You don't say what protocol the file is served under, but assuming something standard like an http or ftp there should be nothing to stop you from starting the download and then aborting it once you've gotten as much of the file as you need, provided that you implement the android end of the protocol yourself rather than using one of the built in mechanisms (unless you find the built in mechanism also gives you the ability to abort).

I don't believe the implementation of a simple http downloader in java or ndk to be too complicated. Doing it on android should not be uniquely challenging as you have all of the normal java and underlying linux network sockets mechanisms readily available.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号