Fasted way of loading underneath data

-3592.188597 -31119.243622 -31.656954 45 48 55
-4032.520771 -32321.662903 -2988.956690 21 20 25
-4032.530785 -32321.731567 -2974.183321 20 19 24
-3994.546652 -32327.033997 -2988.503218 19 18 23
-4033.147812 -32338.432312 -1982.117653 21 20 25
-4032.834053 -32324.501038 -2929.337263 21 20 26
-4033.452511 -32333.972931 -2537.735462 20 19 25
-4032.876968 -32326.667786 -2749.205112 19 18 23
-4033.049583 -32326.438904 -2869.204998 20 19 25

the first 3 numbers are the coordinates, the second three are the rgb values.
Right now i’m using this code to read them in:
try
{
d = new DataInputStream( new BufferedInputStream(
new FileInputStream(ptsFile) ) );
}
catch ( FileNotFoundException ie)
{
return -1;
}

	try
	{
		while ((d != null) && (d.available() > 0))
		{
			s = d.readLine();/*StringOperations.nextData(d);*/
			if (s != null)
			{
				tokens = new StringTokenizer(s);
				if (tokens.countTokens() == 6)
				{ //Parse tokens as normally

any suggestions, coz i need to read in a million of these points:)

Write a tool to convert from your text format, to a binary format. Read the binary format in one big data buffer (IntBuffer ?) and use it directly from that buffer. :slight_smile:

Kev

okay i figured out i need to use Nio;)

but right now i have it like this, first i put a integer in a bytebuffer, this is the total number of points to be read in, after that i put the coordinates array in it. and finally tthe rgb values.
Then i want to create directly floatbuffers from it by its given position and limit, but how can i do this:)


ByteBuffer bb = ByteBuffer.allocateDirect(...).order(ByteOrder.nativeOrder());
// fill with data
bb.rewind(); // or set any position/limit you want the FloatBuffer to refer to...
FloatBuffer fb = bb.asFloatBuffer();

what i want( don’t know if it’s possible is the following ):
at position 4 ( coz of the first integer in the buffer) my vertex positions starts with goes from 4 till (sizeOf(float)4numPoints),
and then i want to read in the byte values that are stored after the vertices. I don’t want to use getFloat() coz i want to give the buffers directly to opengl
but is it posible, coz i read the the method asFloatBuffer for instance read from ‘position’ to the end of the buffer