Solved

The ftp wirting problem is fixed. However there is another problem.

Posted on 2004-04-28
29
306 Views
Last Modified: 2010-03-31
hello, The ftp wirting problem is fixed. However there is another problem.

The programm writes to the file perfectly but only if the file if blank. How can i make it write below the privious text?

i.e a used file

thanx,
0
Comment
Question by:krupini
  • 15
  • 11
  • 3
29 Comments
 
LVL 92

Expert Comment

by:objects
ID: 10944292
you mean you want it to append?
I don't think ftp supports that.
0
 

Author Comment

by:krupini
ID: 10944304
Yeah. I want it to keep writting to the same file without having to constantly delete the previous text.
0
 
LVL 92

Expert Comment

by:objects
ID: 10944313
you'd need to use an ftp client api (as u were originally) that supports appending.

or u could download the existing file, and upload it again followed by the data you want to append.
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 10944317
You'd have to get the remote file then reupload after appending locally
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 10944323
>>you'd need to use an ftp client api (as u were originally) that supports appending

There isn't such a thing that i've ever seen
0
 

Author Comment

by:krupini
ID: 10944330
ok. So if i find the ftp client which supports appending, Then would i be able to use the same code?
0
 
LVL 92

Expert Comment

by:objects
ID: 10944351
> Then would i be able to use the same code?


no you'd need to change your code to use the new api.
0
 

Author Comment

by:krupini
ID: 10944352
So, is there such thing or not?
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 10944357
I'll let objects find that for you - since he mentioned it ;-)
0
 

Author Comment

by:krupini
ID: 10944363
Any ideas of a name of an api like that? or where to find it?
0
 

Author Comment

by:krupini
ID: 10944390
If i put the writting commands inside a loop the it can append.
but if i try calling the same method more than once within the same program then, not

may i know why is that?
0
 
LVL 92

Expert Comment

by:objects
ID: 10944422
> may i know why is that?

cause each connection writes a new file.
You could just keep the connection open and append data to it as required.
0
 

Author Comment

by:krupini
ID: 10944431
ok but if i don't include the line:
out.close();

then the program does not run correctly.
0
 
LVL 92

Expert Comment

by:objects
ID: 10944446
> then the program does not run correctly.

what happens?
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:krupini
ID: 10944450
it freezes and does write anything to the file
0
 

Author Comment

by:krupini
ID: 10944490
ps: does not
0
 
LVL 92

Expert Comment

by:objects
ID: 10944503
can you post your code
0
 

Author Comment

by:krupini
ID: 10944570
this is the important part:

import java.net.*;
import java.io.*;
public class Testing
{
         String output;
         public Testing()
         {
             URLConnection conn;
         }
         public void writeToFileViaFtp(String output) {

          try {
               this.output = output;
               URL ftp = new URL("ftp://try:trytry@69.194.83.97/somefile.txt");
               URLConnection conn = ftp.openConnection();
               conn.setDoOutput(true);
               PrintWriter out = new PrintWriter(conn.getOutputStream());


                   out.write(output);
                   out.close();

          }
          catch (Exception e) {
               e.printStackTrace();
          }
          }
}

This class is called by a GUI. All the GUI does is simulate the throw of a die for an online game. The GUI passes the String value of the throw (to the "output" parameter)and this is supposed to post it on the FTP. The GUI runs fine. But as you might imagine a die has to be thrown more than once and so i need to keep writting to the same file more than once.

thanx.
0
 
LVL 92

Expert Comment

by:objects
ID: 10944606
You would need to open the connection in the ctor, and save the PrintWriter as a member variable.
Then your writeToFileViaFtp would just do

out.write(output);
0
 

Author Comment

by:krupini
ID: 10944644
Honestly, that is one of the things i tried but then the "writeToFileViaFtp" would not recognize the out variable, which could not be declared outside beause it has to be inside the try{}
0
 

Author Comment

by:krupini
ID: 10944647
if you already did it can you show me your code?
thanx.
0
 
LVL 92

Accepted Solution

by:
objects earned 125 total points
ID: 10944658
import java.net.*;
import java.io.*;
public class Testing
{
      PrintWriter out = null;

         public Testing()
         {
          try {
               this.output = output;
               URL ftp = new URL("ftp://try:trytry@69.194.83.97/somefile.txt");
               URLConnection conn = ftp.openConnection();
               conn.setDoOutput(true);
               out = new PrintWriter(conn.getOutputStream());

          }
          catch (Exception e) {
               e.printStackTrace();
          }
         }
         public void writeToFileViaFtp(String output) {
             out.write(output);
          }

        public void close() throws Exception
        {
           out.close();
        }
}
0
 

Author Comment

by:krupini
ID: 10944750
Thanx man. Apreciate it. Although it only posts the answers after you call the close function. But i guess that is because of the server and there nothing to be done.
Thanx.
0
 
LVL 92

Expert Comment

by:objects
ID: 10944781
> Although it only posts the answers after you call the close function.

try:

         public void writeToFileViaFtp(String output) {
             out.write(output);
             out.flush();
          }
0
 

Author Comment

by:krupini
ID: 10944815
Thanx, but i still need to call the close() method for it to post the results.
0
 

Author Comment

by:krupini
ID: 10945026
Hey!!!, I just got it to work!!!!!!!!!!!
0
 
LVL 92

Expert Comment

by:objects
ID: 10945044
excellent news :)
0
 

Author Comment

by:krupini
ID: 10945048
Thanx man!!!  ;)
0
 
LVL 92

Expert Comment

by:objects
ID: 10945058
No worries :)
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now