structure equivalant in java
-
trioum wrote:
still not able to write in the file
What does this mean? Please give a proper explanation of your problem so poeple can try and help you.
Just say 'NO' to evaluated arguments for diadic functions! Ash
-
Make your class serialisable and write it to a binary buffer. Sorted.
Panic, Chaos, Destruction. My work here is done. or "Drink. Get drunk. Fall over." - P O'H
-
Make your class serialisable and write it to a binary buffer. Sorted.
Panic, Chaos, Destruction. My work here is done. or "Drink. Get drunk. Fall over." - P O'H
-
trioum wrote:
can you send me the piece of code for writing class content to the file
0. Define the class as
implements Serializable
:class Foo implements Serializable
{
private int bar;
// stuff// other stuff
}1. Write it to a binary buffer:
Foo foo = new Foo(42);
try
{
java.io.ObjectOutputStream os =
new java.io.ObjectOutputStream(
new java.io.FileOutputStream("foobar.dat"));
os.writeObject(foo);
} catch (java.io.IOException e)
{
e.printStackTrace();
} finaly
{
os.close();
}That's hard how?
Panic, Chaos, Destruction. My work here is done. or "Drink. Get drunk. Fall over." - P O'H
-
trioum wrote:
can you send me the piece of code for writing class content to the file
0. Define the class as
implements Serializable
:class Foo implements Serializable
{
private int bar;
// stuff// other stuff
}1. Write it to a binary buffer:
Foo foo = new Foo(42);
try
{
java.io.ObjectOutputStream os =
new java.io.ObjectOutputStream(
new java.io.FileOutputStream("foobar.dat"));
os.writeObject(foo);
} catch (java.io.IOException e)
{
e.printStackTrace();
} finaly
{
os.close();
}That's hard how?
Panic, Chaos, Destruction. My work here is done. or "Drink. Get drunk. Fall over." - P O'H
That won't compile. os is out of scope in the finally block.
-
That won't compile. os is out of scope in the finally block.
-
trioum wrote:
can you send me the piece of code for writing class content to the file
0. Define the class as
implements Serializable
:class Foo implements Serializable
{
private int bar;
// stuff// other stuff
}1. Write it to a binary buffer:
Foo foo = new Foo(42);
try
{
java.io.ObjectOutputStream os =
new java.io.ObjectOutputStream(
new java.io.FileOutputStream("foobar.dat"));
os.writeObject(foo);
} catch (java.io.IOException e)
{
e.printStackTrace();
} finaly
{
os.close();
}That's hard how?
Panic, Chaos, Destruction. My work here is done. or "Drink. Get drunk. Fall over." - P O'H
there is difference i getting when writing using c and java following lines shows the difference when I use the c code struct _Foo { int one; int two; char buffer[50]; } ; struct _Foo foo; memset(&foo,'0/',sizeof(_Foo)); foo.one = 2; foo.two = 3; strcpy(foo.buffer,"my name is trioum"); FILE *fp; fp = fopen("cfile.txt","wb"); if(fp) { fwrite(&foo,sizeof(struct _Foo),1,fp); fclose(fp); } result in the file I get my name is trioum ////////////////////////////////// but when I write the same code in java public static class _Foo implements Serializable { public int one; public int two; public String buffer = new String(new char[50]); } ObjectOutputStream outputStream = null; try { outputStream = new ObjectOutputStream(new FileOutputStream("javafile.txt")); _Foo Foo = new _Foo(); Foo.one = 2; Foo.two = 3; Foo.buffer = "my name is trioum"; outputStream.writeObject(Foo); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } I get the result in javafile.txt ¬í sr Main$_FooDpÕGT¯_ I oneI twoL buffert Ljava/lang/String;xp t my name is trioum But I want the result as seen in cfile.txt by c code How can I solve the problem
Trioum
-
there is difference i getting when writing using c and java following lines shows the difference when I use the c code struct _Foo { int one; int two; char buffer[50]; } ; struct _Foo foo; memset(&foo,'0/',sizeof(_Foo)); foo.one = 2; foo.two = 3; strcpy(foo.buffer,"my name is trioum"); FILE *fp; fp = fopen("cfile.txt","wb"); if(fp) { fwrite(&foo,sizeof(struct _Foo),1,fp); fclose(fp); } result in the file I get my name is trioum ////////////////////////////////// but when I write the same code in java public static class _Foo implements Serializable { public int one; public int two; public String buffer = new String(new char[50]); } ObjectOutputStream outputStream = null; try { outputStream = new ObjectOutputStream(new FileOutputStream("javafile.txt")); _Foo Foo = new _Foo(); Foo.one = 2; Foo.two = 3; Foo.buffer = "my name is trioum"; outputStream.writeObject(Foo); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } I get the result in javafile.txt ¬í sr Main$_FooDpÕGT¯_ I oneI twoL buffert Ljava/lang/String;xp t my name is trioum But I want the result as seen in cfile.txt by c code How can I solve the problem
Trioum
That's because you are serializing the whole Foo object, which is not what you want. I'm not going to write the whole thing for you but I think I would make Foo look something like this:
public class Foo {
public char one;
public char two;
public String buffer;
... etc ...public String toExternalForm() {
StringBuilder sb = new StringBuilder();
sb.append(one);
sb.append(two);
sb.append(buffer);
... etc ...
return sb.toString();
}}
Then to use it:
foo.one = 2;
foo.two = 3;
foo.buffer = "something";
bw = new BufferedWriter(...etc...);
bw.write(foo.toExternalForm());
bw.flush();That's basically it, you can look up BufferedWriter and whatever else you need and you might want to be a bit more intelligent about handling nulls. (I am using char instead of int in the class Foo because if we use int then StringBuilder would give us 23something which is not what you want, if I have understood correctly.)
-
That's because you are serializing the whole Foo object, which is not what you want. I'm not going to write the whole thing for you but I think I would make Foo look something like this:
public class Foo {
public char one;
public char two;
public String buffer;
... etc ...public String toExternalForm() {
StringBuilder sb = new StringBuilder();
sb.append(one);
sb.append(two);
sb.append(buffer);
... etc ...
return sb.toString();
}}
Then to use it:
foo.one = 2;
foo.two = 3;
foo.buffer = "something";
bw = new BufferedWriter(...etc...);
bw.write(foo.toExternalForm());
bw.flush();That's basically it, you can look up BufferedWriter and whatever else you need and you might want to be a bit more intelligent about handling nulls. (I am using char instead of int in the class Foo because if we use int then StringBuilder would give us 23something which is not what you want, if I have understood correctly.)
-
is there any C structure equivalant in java how to write following struct { int data char buffer[100]; }; equivalent in java
Trioum
Why not use a
class
?class xyz
{
public int data;
public string buffer;
};"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius