|
Here's an example[^] that may help.
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
Hi folks!
this is the code thats giving me problems.
try{
ResultSet rs = Main.dbase.search("select * from myTable");
while(rs.next())
{
cmb.addItem(rs.getString(1).trim());
}
rs.close();
} catch (Exception ex) {System.out.println(ex);}
here dbase is an object executing Statement.executeQuery , and cmb is JComboBox.
the problem is that even though the table has 10 rows, i get only single row in cmb.
if I don't comment out the first rs.next() , i get the 2nd row in cmb.
i tried to track the value of rs.next() and found that after while(rs.next()) it gives out false , always.
My target is to get all the 10 values in cmb.
TheMrProgrammer
http://www.icbse.com/2009/funny-exam-answers-school-students
http://download.cnet.com/TheCalcMan/3000-2094_4-10958266.html
|
|
|
|
|
Have a go at this:
Statement statement = null;
try {
statement = Main.dbase.createStatement();
ResultSet rs = statement.executeQuery("select * from myTable");
while (rs.next()) {
cmb.addItem(rs.getString(1).trim());
}
} catch (SQLException e ) {
System.out.println(ex);
} finally {
if (statement != null) {
statement.close();
}
}
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
Myself I can't see how that answers the OPs question.
|
|
|
|
|
It fixes the code...
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
So you are agreeing that it does not in fact answer the question?
|
|
|
|
|
There are two parts.
1. Database code
2. Gui code.
It seems apparent that you are in fact getting 10 rows from the database. Your statements about the commented rs.next() and your implicit comments about it.
If you are not sure the verify it using a debugger or System.out.println (do NOT use gui code.)
Consequently that means the problem is with your GUI code and not the database code.
You can replace your database code entirely with a for/next loop that adds 10 fixed values (such as "xxx") to the combo box. Until that code works it is pointless to attempt to do anything with the database code.
Creating a small complete example with JUST the gui code (no database code) might help to determine what the problem is.
|
|
|
|
|
|
What is your question?
Software rusts. Simon Stephenson, ca 1994.
|
|
|
|
|
Are you suggesting we use this, advertising its existence or complaining that it sucks?
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
Hi
I am writing a program that extracts .class files from a .jar, adds some other .class files, and then recompresses it. I am at the stage of unzipping the code, but i get this error message(I am using a .jar file from the java game "Minecraft")
java.io.FileNotFoundException: META-INF/MOJANG_C.SF (No such file or directory)
Why? And ow do i prevent it?
Here is my zip code
<br />
public static final int BUFFER = 2048;<br />
public static void unzip(String fName) throws Exception<br />
{<br />
<br />
BufferedOutputStream dest = null;<br />
FileInputStream fis = new <br />
FileInputStream(fName);<br />
JarInputStream zis = new <br />
JarInputStream(new BufferedInputStream(fis));<br />
ZipEntry entry;<br />
while((entry = zis.getNextEntry()) != null) {<br />
int count;<br />
byte data[] = new byte[BUFFER];<br />
FileOutputStream fos = new FileOutputStream(entry.getName(), true);<br />
dest = new <br />
BufferedOutputStream(fos, BUFFER);<br />
while ((count = zis.read(data, 0, BUFFER)) <br />
!= -1) {<br />
dest.write(data, 0, count);<br />
}<br />
dest.flush();<br />
dest.close();<br />
}<br />
zis.close();<br />
}<br />
<br />
modified on Tuesday, June 14, 2011 9:14 AM
|
|
|
|
|
Remove the blind throw, void unzip(String fName) throws Exception is such a bad idea and add targeted try/catch blocks.
From that look at the exception and see exactly where it is being thrown and why. My best guess is that the file does not exist due to either a typing error or a missing qualified path.
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
Is it for debugging reasons?
I know where it stops
|
|
|
|
|
This is not for debugging reasons, it's for 'giving you a chance of not being flayed alive by anyone who knows how to write good code' reasons.
You should NEVER use a blind catch. Ever. End of story.
In the general case of I/O, you should catch each exception because if anything happens, you should close all open streams before exiting the method.
In the specific case of your code, if you know where the bug us WHY NOT TELL US?
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
FileOutputStream fos = new FileOutputStream(entry.getName(), true);
|
|
|
|
|
That's better. If you read the docs[^]:
JavaDoc wrote: throws FileNotFoundException - if the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason
So the file's not there or not writeable.
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
Not there? But the file is in the jar, so how can it not be there?
|
|
|
|
|
The output file is not there.
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
Do you know how i fix that?
|
|
|
|
|
Before opening the output stream check if it exists, if not then don't use append = true
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
Still gives me the same error. Here is the new code:
BufferedOutputStream dest = null;<br />
FileInputStream fis = new <br />
FileInputStream(fName);<br />
JarInputStream zis = new <br />
JarInputStream(new BufferedInputStream(fis));<br />
ZipEntry entry;<br />
while((entry = zis.getNextEntry()) != null) {<br />
int count;<br />
byte data[] = new byte[BUFFER];<br />
File theFile = new File(Util.getWorkingDirectory().getAbsoluteFile() + "/bin/temp/" + entry.getName());<br />
FileOutputStream fos = null;<br />
if(theFile.exists())<br />
{<br />
fos = new FileOutputStream(Util.getWorkingDirectory().getAbsoluteFile() + "/bin/temp/" + entry.getName(), true);<br />
}<br />
else<br />
{<br />
fos = new FileOutputStream(Util.getWorkingDirectory().getAbsoluteFile() + "/bin/temp/" + entry.getName());<br />
}<br />
<br />
dest = new <br />
BufferedOutputStream(fos, BUFFER);<br />
while ((count = zis.read(data, 0, BUFFER)) <br />
!= -1) {<br />
dest.write(data, 0, count);<br />
}<br />
dest.flush();<br />
dest.close();<br />
}<br />
zis.close();
|
|
|
|
|
Can you please use <pre> tags for multiline code; there is an edit button for your message.
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
The lines:
if(theFile.exists())
{
fos = new FileOutputStream(Util.getWorkingDirectory().getAbsoluteFile() + "/bin/temp/" + entry.getName(), true);
}
else
{
fos = new FileOutputStream(Util.getWorkingDirectory().getAbsoluteFile() + "/bin/temp/" + entry.getName());
}
Can be written:
fos = new FileOutputStream(
Util.getWorkingDirectory().getAbsoluteFile() + "/bin/temp/" + entry.getName(),
theFile.exists());
That's readable.
Now, check if the file exists, if it doesn't [which I suspect], is the directory name valid? Is the file name valid? Do you have access to write to the location? This is called debugging and the programmer is expected to do this. The more information you can provide, the easier it is for us to help. Right now, I can offer little more than general tips; even if they are bloody good ones.
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
I added a specific folder to add the contents to. Now i get a FileNotFoundException (No suck File or directory):
java.io.FileNotFoundException: /home/petterroea/.minecraft/bin/temp/META-INF/MOJANG_C.SF (No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:209)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
...
The line that is not working, is
fos = new FileOutputStream(
Util.getWorkingDirectory().getAbsoluteFile() + "/bin/temp/" + entry.getName(),
theFile.exists());
The folder /home/petterroea/.minecraft/bin/temp/ exists, but there is no content in it
|
|
|
|
|
The exception is even telling you what's wrong:
Member 7991625 wrote: java.io.FileNotFoundException: /home/petterroea/.minecraft/bin/temp/META-INF/MOJANG_C.SF (No such file or directory)
File /home/petterroea/.minecraft/bin/temp/META-INF/MOJANG_C.SF is the problem, you need to create the folder /home/petterroea/.minecraft/bin/temp/META-INF before you can add anything to it...
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|