This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes I/O and Streams and the fly likes Binary(Little-endian) file reading problem in applet Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » I/O and Streams
Bookmark "Binary(Little-endian) file reading problem in applet" Watch "Binary(Little-endian) file reading problem in applet" New topic
Author

Binary(Little-endian) file reading problem in applet

Rajan Manoharan
Greenhorn

Joined: Nov 01, 2011
Posts: 2

Hi,

I'm reading a STL binary file using the following code:

public void LoadSTLBinary(DataInputStream datainputstream) throws Exception {

datainputstream.read(new byte[80]);
int iTriaCount = readInt(datainputstream);
System.out.println("Tiangles_bitwise : " + iTriaCount);
triangles = new Triangle[iTriaCount];
......
......
datainputstream.close();
}

//Needed since binary file is in little endian format
public int readInt(DataInputStream datainputstream) throws IOException {
int i = datainputstream.readInt();
return ((i & 0xff) << 24) + ((i & 0xff00) << 8) + ((i & 0xff0000) >> 8) + (i >> 24 & 0xff);
}


Note: unable to attach Sample STL binary file. please go through http://en.wikipedia.org/wiki/STL_(file_format)#Binary_STL

When i run the code as a java application, the system.out.println outputs - "Tiangles_bitwise : 4"
but when called in a applet , the system.out.println outputs - "Tiangles_bitwise : 1146060800"

Any help highly appreciated.

Regards,
Rajan_M
Carey Brown
Ranch Hand

Joined: Nov 19, 2001
Posts: 173

For one, the DataInputStream is used to read files generated through DataOutputStream, not binary files created in any other way. Try InputStream.read().
Rajan Manoharan
Greenhorn

Joined: Nov 01, 2011
Posts: 2

Dear Carey,

I tried with BufferedInputStream but the problem remains the same.
i'm opening the file within applet like this:

InputStream instream = (new URL(filepath)).openConnection().getInputStream();
BufferedInputStream datainputstream = new BufferedInputStream( instream );

Note: i've a sample stl binary file but i'm not able to attach it.

Regards,
Rajan.M
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19654
    
  18

Rajan Manoharan wrote:

I have tried that code with a simple example, and that part works. That means that if you're not getting the results you expect the problem is somewhere else. So please show us the code that's reading the STL file in both the application and the applet.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: Binary(Little-endian) file reading problem in applet
 
Similar Threads
function for IP address to integer conversion
Reading a stream of bytes from a socket.
audio visualization graphics
Problem using DataInputStream Class
how to read integers using DataInputStream