aspose file tools*
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 Spring in Action this week in the Spring 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: 189

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: 19722
    
  20

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
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Binary(Little-endian) file reading problem in applet