Hi Dianne,
Thank you for replying.
Frankly, I have been unable to figure out how to copy from a byte[] to
a char[] except with round-about methods like
1. Forming 2 bytes into a char using bit shifting and or'ing
2. Using the java.nio classes (which are S L O W) if you need to do
lots of transfers like say 200,000 or more.
In any event the Android seems really slow becasue a block like
for(int i=0; i<1000000;i++) {
c[i] = b[i]
}
takes like 20-25 seconds to execute (On Intel Pentium, eq #, such a
thing executes in a flash).
In C++ or even C# you could simply code
char[] c = new char[1000000];
.read((char *)c, 2*1000000);
And it would just lay in the binary data in the array.
How can such a thing be accomplished for the Android/Java?
ANY ideas you can pass along are greatly appreciated!
On Sep 1, 8:44 pm, Dianne Hackborn <[email protected]> wrote:
> How long does it take to just copy from a byte[] to your own char[] in code?
>
>
>
>
>
> On Tue, Sep 1, 2009 at 5:13 PM, WoodManEXP <[email protected]> wrote:
>
> > This is sort of a java question too…
>
> > How to read in a large array of chars, quickly?
>
> > I have a file on the /sdcard/ with a million chars (2 bytes each) that
> > I would like to read in quickly. It is a binary file written from
> > another system and I cannot change it.
>
> > It can be read into a byte[] array extremely quickly with a statement
> > like
>
> > // dInStream is an open DataInoutStream
> > // This is a really, really fast operation on Android
> > byte[] rBuffer = new byte[2*1000000]; // Yes I know this is a lot for
> > Android
> > numBytesRead = dInStream.read(rBuffer, 0, 2*1000000);
>
> > But then to get the data into a char[] array is evading me.
>
> > I have tried lots of stuff from java.nio like ByteBuffers converting
> > to CharBuffers and the get methods and they will do the conversion but
> > they are so very S L O W.
>
> > It takes < 1 sec to do the dInStream.read call and then like 30
> > seconds to walk over the wraped ByteArray.asCharBuffer using the
> > various get methods.
>
> > For a sec I thought ByteBuffer.asCharBuffer.array() was going to save
> > the day. But it exceptions out because the wrap of the byte[] array is
> > owned by the ByteBuffer, not the CharBuffer.
>
> > Is there any way just to do the dInStream.read directly into the char
> > array or maybe “cast” the byte[] array to a char[] array?
>
> > Thanks in advance for any help!
>
> --
> Dianne Hackborn
> Android framework engineer
> [email protected]
>
> Note: please don't send private questions to me, as I don't have time to
> provide private support, and so won't reply to such e-mails. All such
> questions should be posted on public forums, where I and others can see and
> answer them.- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---