EOF in a buffer???

Hi, I need to append an EOF to the end of a buffer to overcome a bug in the org.apache.crimson.parser.InputEntity class.
What is the hexadeimal code for EOF?? Can I just put it on the end of the buffer??

Are you referring to Ctrl-Z? ASCII 26, 0x1A

Similar Messages

  • Receiving null pointer exception

    Created the following program to read and output a file:
    import java.io.*;
    import java.util.StringTokenizer;
    public class ReadSource {
    public static void main(String[] arguments) {
         StringTokenizer st1;
         try {
              FileReader file = new
                        FileReader("C:/upload/DS121002.csv");
                        BufferedReader buff = new BufferedReader(file);
                        boolean eof = false;
                        while (!eof) {
                        String line = buff.readLine();
                             if (line == null)
                             eof = true;
                             else
                             System.out.println(line);
                                  st1 = new StringTokenizer(line,",");
                                  System.out.println("Token 1: " + st1.nextToken());
                                  System.out.println("Token 2: " + st1.nextToken());
                        buff.close();
              } catch (IOException e) {
              System.out.println("Error -- " + e.toString());
    I am receiving the following error message when the program completes:
    Exception in thread "main" java.lang.NullPointerException
    at java.util.StringTokenizer.<init>(StringTokenizer.java:122)
    at java.util.StringTokenizer.<init>(StringTokenizer.java:138)
    at ReadSource.main(ReadSource.java:18)
    What do I need to change to prevent this error?

    You coded:
    if (line == null)
    eof = true;
    else
    do something else;
    // then, regardless of the above,
    st1 = new StringTokenizer(line,","); // line is still null here
    So there's the problem.

  • How do I delete a file from a directory

    I want to delete the file I have finished processing in the c:\upload directory but the f.delete() command is not working. Am I using this command correctly?
    The f.delete() is after I copy the file to an archive directory.
    Program:
    import java.io.*;
    import java.util.*;
    import java.text.*;
    import java.sql.*;
    public class ReadSource {
    public static void main(String[] args) throws Exception {
         StringTokenizer st1;
              String val1, val3, val4, val5, val9, val10, val11, val12, val13, val14, val16;
              String val2, val6, val7, val8, val15, val17, val18, val19, val20;
              int cnt;
              File f = new File("C://upload" );
              FileWriter outFile = new FileWriter("C://RIFIS/log/logfile.txt", true);
              String filetext = "Starting RIFIS Upload";
              java.util.Date d = new java.util.Date();
              SimpleDateFormat form = new SimpleDateFormat("dd/MMM/yyyy hh:mm:ss");
              String dateString = form.format(d);
         try {
              Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@xxxxx.xxxx.xxx:1521:xx","xxxxxx","xxxx");
                        Statement st = conn.createStatement();
                        outFile.write(System.getProperty("line.separator"));
                        outFile.write(filetext+" - "+dateString);
                        if (f.isDirectory())
                        { String [] s = f.list();
                        for (int i=0; i<s.length; i++)
                        { outFile.write(System.getProperty("line.separator"));
                             outFile.write("Found file - "+f+"/"+s);
              FileReader file = new FileReader(f+"/"+s[i]);
                                  File inputFile = new File(f+"/"+s[i]);
                                  File outputFile = new File("C://RIFIS/archive/"+s[i]);
                        BufferedReader buff = new BufferedReader(file);
                        boolean eof = false;
                        String val0="";
                        ResultSet rec = st.executeQuery("SELECT landings_hold_batch_seq.nextval FROM dual");
                        while(rec.next())
                        { val0 = rec.getString(1); }
                                  cnt=0;
                        while (!eof)
                        { String line = buff.readLine();
                             if (line == null)
                             { eof = true; }
                             else
                             { //System.out.println(line);
                                       cnt = cnt+1;
                                  st1 = new StringTokenizer(line,",");
                                       val1 = st1.nextToken();
                                       val2 = st1.nextToken();
                                       val3 = st1.nextToken();
                                       val4 = st1.nextToken();
                                       val5 = st1.nextToken();
                                       val6 = st1.nextToken();
                                       val7 = st1.nextToken();
                                       val8 = st1.nextToken();
                                       val9 = st1.nextToken();
                                       val10 = st1.nextToken();
                                       val11 = st1.nextToken();
                                       val12 = st1.nextToken();
                                       val13 = st1.nextToken();
                                       val14 = st1.nextToken();
                                       val15 = st1.nextToken();
                                       val16 = st1.nextToken();
                                       val17 = st1.nextToken();
                                            val18 = st1.nextToken();
                                            val19 = st1.nextToken();
                                            val20 = st1.nextToken();
                                       /*System.out.println("Token 0: " + val0);
                                  System.out.println("Token 1: " + val1);
                                  System.out.println("Token 2: " + val2);
                                       System.out.println("Token 3: " + val3);
                                       System.out.println("Token 4: " + val4);
                                       System.out.println("Token 5: " + val5);
                                       System.out.println("Token 6: " + val6);
                                       System.out.println("Token 7: " + val7);
                                       System.out.println("Token 8: " + val8);
                                       System.out.println("Token 9: " + val9);
                                       System.out.println("Token 10: " + val10);
                                       System.out.println("Token 11: " + val11);
                                       System.out.println("Token 12: " + val12);
                                       System.out.println("Token 13: " + val13);
                                       System.out.println("Token 14: " + val14);
                                       System.out.println("Token 15: " + val15);
                                       System.out.println("Token 16: " + val16);
                                       System.out.println("Token 17: " + val17);
                                            System.out.println("Token 18: " + val18);
                                            System.out.println("Token 19: " + val19);
                                            System.out.println("Token 20: " + val20);*/
                                       st.executeUpdate("INSERT INTO LANDINGS_HOLD (lh_id, lh_batch, supplier_dr_id, supplier_unique_id, supplier_dealer_id, supplier_cf_id, supplier_vessel_id, unload_year, unload_month, unload_day, state_code, county_code, port_code, itis_code, market, grade, reported_quantity, unit_measure, dollars, lh_loaddt, lh_loadlive, purch_year, purch_month, purch_day)" +
                        "VALUES (0,'"+val0+"','"+val1+"',"+val2+",'"+val3+"','"+val4+"','"+val5+"',"+val6+","+val7+","+val8+",'"+val9+"','"+val10+"','"+val11+"','"+val12+"','"+val13+"','"+val14+"',"+val15+",'"+val16+"',"+val17+",SYSDATE,NULL,"+val18+","+val19+","+val20+")");
                             FileReader in = new FileReader(inputFile);
                             FileWriter out = new FileWriter(outputFile);
    int c;
                             while ((c = in.read()) != -1)
                             { out.write((char)c); }
                             in.close();
                             out.close();
                             outFile.write(System.getProperty("line.separator"));
                             outFile.write("Number of records inserted - "+cnt);
                             outFile.write(System.getProperty("line.separator"));
                             outFile.write("Copied upload file to archive directory");
                             f.delete(); // delete the upload file
                             outFile.write(System.getProperty("line.separator"));
                             outFile.write(f+"/"+s[i]+" - Has been removed from upload directory");
                             buff.close();
                        outFile.write(System.getProperty("line.separator"));
                        outFile.write("Upload Complete...NO ERRORS");
                        outFile.write(System.getProperty("line.separator"));
                        outFile.write("*************************************************************");
                        outFile.write(System.getProperty("line.separator"));
                        //outFile.flush();
              //outFile.close();
                        conn.close();
                        else
                        { outFile.write("No files to process"); }
              catch(Exception e)
                   { outFile.write(System.getProperty("line.separator"));
                   outFile.write("ALERT....ALERT....ALERT");
                        outFile.write(System.getProperty("line.separator"));
                        outFile.write("Error Occurred in ReadSource.java - RIFIS Upload");
                        outFile.write(System.getProperty("line.separator"));
                   outFile.write("My Error: " + e);
                        outFile.write(System.getProperty("line.separator"));
                        outFile.write("*************************************************************");
                   outFile.flush();
              outFile.close();

    Gave it a try but file c:\upload\DS121002.csv did not go away. Here is the location of my delete command:
    st.executeUpdate("INSERT INTO LANDINGS_HOLD (lh_id, lh_batch, supplier_dr_id, supplier_unique_id, supplier_dealer_id, supplier_cf_id, supplier_vessel_id, unload_year, unload_month, unload_day, state_code, county_code, port_code, itis_code, market, grade, reported_quantity, unit_measure, dollars, lh_loaddt, lh_loadlive, purch_year, purch_month, purch_day)" +
                        "VALUES (0,'"+val0+"','"+val1+"',"+val2+",'"+val3+"','"+val4+"','"+val5+"',"+val6+","+val7+","+val8+",'"+val9+"','"+val10+"','"+val11+"','"+val12+"','"+val13+"','"+val14+"',"+val15+",'"+val16+"',"+val17+",SYSDATE,NULL,"+val18+","+val19+","+val20+")");
                             FileReader in = new FileReader(inputFile);
                             FileWriter out = new FileWriter(outputFile);
    int c;
                             while ((c = in.read()) != -1)
                             { out.write((char)c); }
                             in.close();
                             out.close();
                             inputFile.delete();
                             outFile.write(System.getProperty("line.separator"));
    ............

  • How Can I replace line in text file

    I have a text file like following format
    1
    bvhhk
    g1
    2
    bvgjvh
    g1
    3
    mmm,mvb
    g2
    I want to replace 2 nd line to " prasad" and after replacing it should be following format
    1
    prasad
    g1
    2
    bvgjvh
    g1
    3
    mmm,mvb
    g2
    I try above change using following code segment and it is not work.
    static void modifyEmployeeDetails(String file_name){
    try{
         InputStreamReader reader= new InputStreamReader(System.in);
         BufferedReader buff=new BufferedReader(reader);
         FileReader read=new FileReader(file_name);
         BufferedReader buffer=new BufferedReader(read);
         FileWriter w=new FileWriter(file_name,true);
         PrintWriter write = new PrintWriter(w);
         System.out.print("Employee No : ");
         String No=buff.readLine();
    boolean eof = false;
    while (!eof) {
    String tep=buffer.readLine();
    if(tep.equals(No)){
    eof = true;
    System.out.print("Name : ");
    temp=buff.readLine();
    System.out.println("No");
    write.println(temp);
    System.out.print("Group No : ");
    temp=buff.readLine();
    write.println(temp);
    }catch(Exception e){
    System.out.println(e);
    Please correct If it is wrong and help me as soon as possible
    Thank you...............

    hi,
    I have a different approach of the solution to your problem.
    suppose you have entries in your file without any extra line feed between each two entries.
    the following program entirely reads your data into a bean list, changes a specific bean attribute and writes it to your data source.
    (you should adapt it to your needs)
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    public class FileReplace {
         public List<MyBean> readFile(BufferedReader in) throws IOException{
              String line;
              List<MyBean> beanList = new ArrayList<MyBean>();
              MyBean bean = null;
              int i=0;
              while((line=in.readLine())!=null){
                   if(line.trim().equals("***")){
                        beanList.add(bean);
                        i = 0;
                   }else{
                        switch (i) {
                        case 0:
                             bean = new MyBean();
                             bean.setAttribute1(line);
                             i++;
                             break;
                        case 1:
                             bean.setAttribute2(line);
                             i++;
                             break;
                        case 2:
                             bean.setAttribute3(line);
                             i++;
                             break;
                        default:
                             break;
              return beanList;
         public void writeToFile(List<MyBean> beanList, String outputFilePath) throws IOException{
              FileWriter out = new FileWriter(outputFilePath);
              for (int i = 0; i < beanList.size(); i++) {
                   out.write(beanList.get(i).toString());
              out.flush();
              out.close();
         public void test(){
              //BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
              String filePath = "D:/file.txt";
              try {
                   BufferedReader in = new BufferedReader(new FileReader(filePath));
                   //read data
                   List<MyBean> beanList = readFile(in);
                   // edit a bean attribute
                   beanList.get(0).setAttribute2("prasad");
                   //write beans back to file
                   writeToFile(beanList, filePath);
              } catch (FileNotFoundException e) {
                   e.printStackTrace(); //handle appropriately this exception
              } catch (IOException e) {
                   e.printStackTrace();//handle appropriately this exception
              }catch (Exception e) {
                   e.printStackTrace();//handle appropriately this exception
         class MyBean{
              String attribute1;
              String attribute2;
              String attribute3;
              public final static int ATTRS_NUMBER = 3;
              public String getAttribute1() {
                   return attribute1;
              public void setAttribute1(String attribute1) {
                   this.attribute1 = attribute1;
              public String getAttribute2() {
                   return attribute2;
              public void setAttribute2(String attribute2) {
                   this.attribute2 = attribute2;
              public String getAttribute3() {
                   return attribute3;
              public void setAttribute3(String attribute3) {
                   this.attribute3 = attribute3;
              @Override
              public String toString() {
                   return attribute1+"\n"+attribute2+"\n"+attribute3+"\n***\n";
         public static void main(String[] args) {
              FileReplace instance = new FileReplace();
              instance.test();
    }hope it helps

  • Dynamic IO throws java.io.FileNotFound exception

    Hi, I have the following class ( a prototype) which I want to use to display the contents of any file. I plan to work on this more so it puts it onto a Panel in a different section to the input, but bear with me.
    When I enter a file name (even with a full path), it generates the following:
    Enter source file to list :
    Watch.java
    You entered : Watch.java
    Error -- java.io.FileNotFoundException: Watch.java
    (The filename, directory name, or volume label syntax is incorrect)
    Here is the source code. What am I doing wrong ? If I change the FileReader object and hard code a file name, it works fine. Please help. Thanks.
    import java.io.*;
    public class ReadSource2
    public static String inline()
    StringBuffer response = new StringBuffer();
    try
    {     BufferedInputStream buff = new BufferedInputStream(System.in);
    int in = 0;
    char inChar;
    do {
    in = buff.read();
         inChar = (char) in;
         if (in != -1) response.append(inChar);
         } while ((in != -1) && (inChar != '\n'));
         buff.close();
         return response.toString();
    catch (IOException e)
         { System.out.println("Exception: " + e.getMessage());
         return null;
    public static void main(String[] args)
    System.out.println("\nEnter source file to list : ");
    String input = ReadSource2.inline();
    System.out.println("You entered : " + input);
    try
    {      FileReader file = new FileReader("" + input);
         BufferedReader buff = new BufferedReader(file);
         boolean eof = false;
         while (!eof)
              String line = buff.readLine();
              if (line == null) eof = true;
              else System.out.println(line);
         buff.close();
    catch (IOException e) { System.out.println("Error -- " + e.toString()); }
    }

    I solved this by trial and error (more error than trial). What was happening was that I was capturing the carriage return as part of the file name, so I had to truncate it from the file name and it now works fine. I made the followingf modification to the main() method:
    input = input.substring(0, input.length() - 2) ;
    and it works like a charm.
    Of course if I hit a Tab before carriage return, it blows up just as it did before, so it is not completely idiot-proof yet, but should be OK for 99% of the time. This now also works for windows files (just HAD to test), where a space in the file name is legitimate.
    Case closed. Lesson learned.

  • Aynchronous and Synchronous communication TCP socket

    Hi All,
    I have written a client/server test application to test the performance of the java socket library. I tested the application in two scenarios,
    1) Asynchronous communication between client and server, client sends data(packet size is 500bytes) without waiting for the server response. I tried to upload 1mb file. The time took was 1.5mb/sec which is reasonable.
    2) Synchronous communication between client and server, client sends data (again, packet size is 500bytes) and waits for the server response (all server responds is OK (1 byte data)). The amazing thing in this test was the performance went down drastically!!! it came down to 5-10kb/sec, which is unbelievably nonsense or I am doing something nonsense.
    code snippet (server side)
    //reading from the socket (tried both buffered and non-buffered )
    inputstream = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
    //writing to the outputstream of the socket (server side)
    outstream = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream))
    //then flush the data, in case
    client side code is very simple,
    while(not EOF)
    outputstream.write(buffer); //buffer size is 500bytes, as I mentioned above
    if(synchronous)
    wait for server response, otherwise don't
    I don't know why in case of synchronous communication it should bring down the speed so much, may be I am using wrong java classes or java sucks!
    I would greatly appreciate any help on this.
    Platform used: JDK 1.3.1, WIN2K.

    I have to break it up because that's how it's done in the real application. The test application that I have written is just part of the product that I am working on.
    To give you the background, we have C++ product where we are porting server side of the whole product to java.
    The client(which is written in c++) sends data(which is basically attributes), of size 500bytes in every request. The no. of request depends on how big the model(3D Model) is. In case of very huge models (will have MBs of attributes) the client takes long time to send all the attributes, which is the case with java server (client still in c++). But the in case c++ server it doesn't make any difference, the data transfer rate is same no matter how big the model is.
    I know if I increase the size of the packet I will get higher performance, but unfortunately I can't do that. That's how the client is designed to do it.
    thanks,
    Ganesh

  • How To Re-Input More Data To A Text File?

    I was wondering if anyone could tell me how to re-input more data into a text file? I don't want to over-write the text file, but just add more data to it. The current code i have is:
    import java.util.Scanner;
    import java.io.*;
    class trialanderror002 {     
    public static void main(String args[]){     
         Scanner input = new Scanner(System.in);
         String str;
    FileOutputStream out;
    PrintStream p;
    try{
         out = new FileOutputStream("c:\\products.txt");
         p = new PrintStream(out);
         System.out.println("Please insert text to be written to file...");
         str = input.next();
         p.println (str);
         p.close();
    catch (Exception e){
         System.err.println ("Error writing to file");
    Basically, after each time the program is ran, i'd like to insert another line of data into products.txt.
    Is there a way for me to loop the program too and not remove the data from the text file?
    thanx...

    just one more question...
    i've figured out the code to retrieve the text file and print it to screen...but how do i go about only printing parts of my text file?
    So supposing my text file has 5 lines of data/text etc, how would i make it print the first line?...or the second line?...or the third....etc etc...
    the current code i now have is:
    package Assignment1;
    import java.util.Scanner;
    import java.io.*;
    class trialanderror002 {     
    public static void main(String args[]){     
         Scanner input = new Scanner(System.in);
         String str;
    FileOutputStream out;
    PrintStream p;
    try{
         out = new FileOutputStream("c:\\trial.txt", true);
         p = new PrintStream(out);
         System.out.println("Please insert text to be written to file...");
         str = input.next();
         p.println (str);
         p.close();
    catch (Exception e){
         System.err.println ("Error writing to file");
              try {
              FileReader file = new
              FileReader("c:\\trial.txt");
              BufferedReader buff = new
              BufferedReader(file);
              boolean eof = false;
              while (!eof){
                   String line = buff.readLine();
                   if (line == null)
                        eof = true;
                   else
                        System.out.println(line);
              buff.close();
              }catch (IOException e){
                   System.out.println("Error -- " + e.toString());
    }

  • Cannot get java system call to work

    I am trying to make a system level call that will create a new user but have not been sucessful. I am reading the list of new users from newbousrs.txt file. Why am I getting the error message shown below? Here is my program:
    import java.io.*;
    public class ReadSource {
    public static void main(String[] arguments) {
    try {
    FileReader file = new FileReader("newbousrs.txt");
    BufferedReader buff = new BufferedReader(file);
    Runtime rt = Runtime.getRuntime();
    boolean eof = false;
    while (!eof) {
    String line = buff.readLine();
    if (line == null)
    eof = true;
    else
    System.out.println(line);
    Process proc = rt.exec("\\Blowfish\\droot\\Program Files\\Business Objects\\BusinessObjects 5.0\\supervsr.exe -USER xxxxx -PASS yyyy -IMPORTUSERS \\Blowfish\\droot\\accsp\\public\\newusers\\newbousrs.txt");
    buff.close();
    } catch (IOException e) {
    System.out.println("Error -- " + e.toString());
    There error I get is this:
    C:\jakarta-tomcat-4.0.3\webapps\webdav\WEB-INF\classes\accsp>java ReadSource
    NU,Public,Steve Mcnealy,Steve Mcnealy,U,N,N,Y,N,N,PC,F,Y,N,N
    Error -- java.io.IOException: CreateProcess: \Blowfish\droot\Program Files\Busin
    ess Objects\BusinessObjects 5.0\supervsr.exe -USER accsp -PASS fish -IMPORTUSERS
    \Blowfish\droot\accsp\public\newusers\newbousrs.txt error=3

    Just a guess....
    Program Files\\Business ObjectsSpace used in arguments in a command line command must have quotes around them. That includes the first argument.

  • Call to java bean but code not being executed.

    Making a call to my javabean class called ch06_03.java from a jsp program shown below:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Using a java package.</title>
    </head>
    <body>
    <% beans.ch06_03 messager = new beans.ch06_03(); %>
    The message is: <%= messager.msg() %>
    </body>
    </html>
    The call from jsp to javabean program is only returning the hello from java and NOT EXECUTING ANY OF THE CODE in the msg() method. I am checking my table landings_hold and nothing is there, my log file shows nothing. Why is the code not being executed except for the return statement?
    My javabean program is shown below:
    package beans;
    import java.io.*;
    import java.util.*;
    import java.text.*;
    import java.sql.*;
    public class ch06_03 {
    StringTokenizer st1;
              String val1, val3, val4, val5, val9, val10, val11, val12, val13, val14, val16;
              String val2, val6, val7, val8, val15, val17, val18, val19, val20;
              int cnt;
              String filetext = "Starting RIFIS Upload";
              java.util.Date d = new java.util.Date();
              SimpleDateFormat form = new SimpleDateFormat("dd/MMM/yyyy hh:mm:ss");
              String dateString = form.format(d);
    public String msg() throws Exception {
         try {
         Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@xxxxx.xxxx.xxx:1521:xx","xxxxxx","xxxx");
              Statement st = conn.createStatement();
         File f = new File("C://upload");
              FileWriter outFile = new FileWriter("C://RIFIS/log/logfile.txt", true);
              outFile.write(System.getProperty("line.separator"));
              outFile.write(filetext+" - "+dateString);
              if (f.isDirectory())
              { String [] s = f.list();
              for (int i=0; i<s.length; i++)
              { outFile.write(System.getProperty("line.separator"));
                   outFile.write("Found file - "+f+"/"+s);
              FileReader file = new FileReader(f+"/"+s[i]);
                   File inputFile = new File(f+"/"+s[i]);
                        File outputFile = new File("C://RIFIS/archive/"+s[i]);
                   BufferedReader buff = new BufferedReader(file);
                   boolean eof = false;
                   String val0="";
                   ResultSet rec = st.executeQuery("SELECT landings_hold_batch_seq.nextval FROM dual");
                        while(rec.next())
                        { val0 = rec.getString(1); }
                        cnt=0;
                        while (!eof)
                        { String line = buff.readLine();
                        if (line == null)
                        { eof = true; }
                             else
                             { cnt = cnt+1;
                                  st1 = new StringTokenizer(line,",");
                                  val1 = st1.nextToken();
                                  val2 = st1.nextToken();
                                  val3 = st1.nextToken();
                                  val4 = st1.nextToken();
                                  val5 = st1.nextToken();
                                  val6 = st1.nextToken();
                                  val7 = st1.nextToken();
                                  val8 = st1.nextToken();
                                  val9 = st1.nextToken();
                                  val10 = st1.nextToken();
                                  val11 = st1.nextToken();
                                  val12 = st1.nextToken();
                                  val13 = st1.nextToken();
                                  val14 = st1.nextToken();
                                  val15 = st1.nextToken();
                                  val16 = st1.nextToken();
                                  val17 = st1.nextToken();
                                  val18 = st1.nextToken();
                                  val19 = st1.nextToken();
                                  val20 = st1.nextToken();
                                  st.executeUpdate("INSERT INTO LANDINGS_HOLD (lh_id, lh_batch, supplier_dr_id, supplier_unique_id, supplier_dealer_id, supplier_cf_id, supplier_vessel_id, unload_year, unload_month, unload_day, state_code, county_code, port_code, itis_code, market, grade, reported_quantity, unit_measure, dollars, lh_loaddt, lh_loadlive, purch_year, purch_month, purch_day)" +
                        "VALUES (0,'"+val0+"','"+val1+"',"+val2+",'"+val3+"','"+val4+"','"+val5+"',"+val6+","+val7+","+val8+",'"+val9+"','"+val10+"','"+val11+"','"+val12+"','"+val13+"','"+val14+"',"+val15+",'"+val16+"',"+val17+",SYSDATE,NULL,"+val18+","+val19+","+val20+")");
                             } // while else end
                        } // parent while end
                        FileReader in = new FileReader(inputFile);
                        FileWriter out = new FileWriter(outputFile);
    int c;
                        while ((c = in.read()) != -1)
                        { out.write((char)c); }
                        in.close();
                        out.close();
                        outFile.write(System.getProperty("line.separator"));
                        outFile.write("Number of records inserted - "+cnt);
                        outFile.write(System.getProperty("line.separator"));
                        outFile.write("Copied upload file to archive directory");
                        outFile.write(System.getProperty("line.separator"));
                        outFile.write(f+"/"+s[i]+" - Has been removed from upload directory");
                        buff.close();
                        inputFile.delete();
                   } // for end
                   outFile.write(System.getProperty("line.separator"));
                   outFile.write("Upload Complete...NO ERRORS");
                   outFile.write(System.getProperty("line.separator"));
                   outFile.write("*************************************************************");
                   outFile.write(System.getProperty("line.separator"));
                   conn.close();
              } // if end
              else
              { outFile.write("No files to process"); }
              outFile.flush();
              outFile.close();
              } // try end.
              catch(Exception e)
              { FileWriter errFile = new FileWriter("C://RIFIS/log/errfile.txt", true);
              errFile.write(System.getProperty("line.separator"));
              errFile.write("ALERT....ALERT....ALERT");
              errFile.write(System.getProperty("line.separator"));
              errFile.write("Error Occurred in ReadSource.java - RIFIS Upload");
              errFile.write(System.getProperty("line.separator"));
              errFile.write("My Error: " + e);
              errFile.write(System.getProperty("line.separator"));
              errFile.write("*************************************************************");
                   errFile.flush();
                   errFile.close();
              } // catch exception end.
         return "Hello from java";
         } //public msg block
         public ch06_03()

    Since you didn't use code-formatting tags ([ code ] and [ /code ] without the spaces) it's kinda hard to look at it. But I'm sure it DID execute much more than just the return statement - maybe you're not closing a file or db connection, or maybe you're seeing a cached page, so it actually isn't executing ANYTHING on the server (is your browser set to never check for newer pages so it (almost) always returns from cache, for example?)

  • Execute DOS command inside java

    I have a java program that reads each new user from an inputfile and writes that same user to an output file. The program works fine and is shown below:
    import java.io.*;
    public class FileStreamsTest {
    public static void main(String[] args) {
    try {
    File inputFile = new File("newbousrs.txt");
    File outputFile = new File("outagain.txt");
    FileInputStream fis = new FileInputStream(inputFile);
    FileOutputStream fos = new FileOutputStream(outputFile);
    int c;
    while ((c = fis.read()) != -1) {
    fos.write(c);
    fis.close();
    fos.close();
    } catch (FileNotFoundException e) {
    System.err.println("FileStreamsTest: " + e);
    } catch (IOException e) {
    System.err.println("FileStreamsTest: " + e);
    What I would like to do after each write is to execute a DOS command that looks something like this: supervsr.exe -USER username -PASS password -IMPORTUSERS importfile.txt
    The DOS command above will add each user to the system I want to as the loop goes through each user record.
    How do I execute the DOS command above inside java?

    Tried what but still having a problem...here is my code:
    import java.io.*;
    public class ReadSource {
    public static void main(String[] arguments) {
    try {
    FileReader file = new FileReader("newbousrs.txt");
                                  //FileWriter letters = new FileWriter("outagain.txt");
                                  //PrintWriter pw = new PrintWriter(new FileWriter("outagain.txt"));
    BufferedReader buff = new BufferedReader(file);
                                  Runtime rt = Runtime.getRuntime();
    boolean eof = false;
    while (!eof) {
    String line = buff.readLine();
    if (line == null)
    eof = true;
    else
    System.out.println(line);
                                                 Process proc = rt.exec("\\Blowfish\\droot\\Program Files\\Business Objects\\BusinessObjects 5.0\\supervsr.exe -USER xxxxx -PASS yyyy -IMPORTUSERS \\Blowfish\\droot\\accsp\\public\\newusers\\newbousrs.txt");
                                                 //System.out.println(line.substring(4, 10));
                                                 //System.out.println(line.substring(3,line.indexOf(',',3)));
    buff.close();
    } catch (IOException e) {
    System.out.println("Error -- " + e.toString());
    There error I get is this:
    C:\jakarta-tomcat-4.0.3\webapps\webdav\WEB-INF\classes\accsp>java ReadSource
    NU,Public,Steve Mcnealy,Steve Mcnealy,U,N,N,Y,N,N,PC,F,Y,N,N
    Error -- java.io.IOException: CreateProcess: \Blowfish\droot\Program Files\Busin
    ess Objects\BusinessObjects 5.0\supervsr.exe -USER accsp -PASS fish -IMPORTUSERS
    \Blowfish\droot\accsp\public\newusers\newbousrs.txt error=3

  • Trying to create log of programs activities

    Trying to create a log file that will track what my program is doing but receiving the following error message on my write command:
    C:\jakarta-tomcat-4.0.3\webapps\webdav\WEB-INF\classes>javac ReadSource.java
    ReadSource.java:28: cannot resolve symbol
    symbol : method write (java.lang.String)
    location: class java.io.FileOutputStream
    fos.write(s);
    ^
    1 error
    Here is my program:
    import java.io.*;
    import java.util.StringTokenizer;
    import java.sql.*;
    public class ReadSource {
    static String filename = "C:/upload/log/logfil.log";
    public static void main(String[] args) throws Exception {
         StringTokenizer st1;
              String val1, val3, val4, val5, val9, val10, val11, val12, val13, val14, val16;
              String val2, val6, val7, val8, val15, val17;
              File f = new File("C://upload" );
         try {
              Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@xxxx.xxxxx.xxxx:1521:xx","xxxxxx","xxxxx");
                        Statement st = conn.createStatement();
                        File fl = new File(filename);
                        if (!fl.exists())
                        { fl.createNewFile(); }
                        FileOutputStream fos = new FileOutputStream(fl.toString(),true);
                        if (f.isDirectory())
                        { String [] s = f.list();
                        for (int i=0; i<s.length; i++)
                        { System.out.println(s[i]);
                             fos.write(s[i]);
                             System.out.println(f);
                                  System.out.println(f+"/"+s[i]);
              FileReader file = new FileReader(f+"/"+s[i]);
                                  File inputFile = new File(f+"/"+s[i]);
                                  File outputFile = new File("C:/upload/archive/"+s[i]);
                        BufferedReader buff = new BufferedReader(file);
                        boolean eof = false;
                        String val0="";
                        ResultSet rec = st.executeQuery("SELECT landings_hold_batch_seq.nextval FROM dual");
                        while(rec.next())
                        { val0 = rec.getString(1);
                             //System.out.println(val0);
                        while (!eof)
                        { String line = buff.readLine();
                             if (line == null)
                             { eof = true; }
                             else
                             { //System.out.println(line);
                                  st1 = new StringTokenizer(line,",");
                                       //System.out.println(val0);
                                       val1 = st1.nextToken();
                                       val2 = st1.nextToken();
                                       val3 = st1.nextToken();
                                       val4 = st1.nextToken();
                                       val5 = st1.nextToken();
                                       val6 = st1.nextToken();
                                       val7 = st1.nextToken();
                                       val8 = st1.nextToken();
                                       val9 = st1.nextToken();
                                       val10 = st1.nextToken();
                                       val11 = st1.nextToken();
                                       val12 = st1.nextToken();
                                       val13 = st1.nextToken();
                                       val14 = st1.nextToken();
                                       val15 = st1.nextToken();
                                       val16 = st1.nextToken();
                                       val17 = st1.nextToken();
                                       /*System.out.println("Token 0: " + val0);
                                  System.out.println("Token 1: " + val1);
                                  System.out.println("Token 2: " + val2);
                                       System.out.println("Token 3: " + val3);
                                       System.out.println("Token 4: " + val4);
                                       System.out.println("Token 5: " + val5);
                                       System.out.println("Token 6: " + val6);
                                       System.out.println("Token 7: " + val7);
                                       System.out.println("Token 8: " + val8);
                                       System.out.println("Token 9: " + val9);
                                       System.out.println("Token 10: " + val10);
                                       System.out.println("Token 11: " + val11);
                                       System.out.println("Token 12: " + val12);
                                       System.out.println("Token 13: " + val13);
                                       System.out.println("Token 14: " + val14);
                                       System.out.println("Token 15: " + val15);
                                       System.out.println("Token 16: " + val16);
                                       System.out.println("Token 17: " + val17);*/
                                       st.executeUpdate("INSERT INTO LANDINGS_HOLD (lh_id, lh_batch, supplier_dr_id, supplier_unique_id, supplier_dealer_id, supplier_cf_id, supplier_vessel_id, unload_year, unload_month, unload_day, state_code, county_code, port_code, itis_code, market, grade, reported_quantity, unit_measure, dollars, lh_loaddt, lh_loadlive)" +
                        "VALUES (0,'"+val0+"','"+val1+"',"+val2+",'"+val3+"','"+val4+"','"+val5+"',"+val6+","+val7+","+val8+",'"+val9+"','"+val10+"','"+val11+"','"+val12+"','"+val13+"','"+val14+"',"+val15+",'"+val16+"',"+val17+",SYSDATE,NULL)");
                             FileReader in = new FileReader(inputFile);
                             FileWriter out = new FileWriter(outputFile);
    int c;
                             while ((c = in.read()) != -1)
                             { out.write((char)c); }
                             in.close();
                             out.close();
                             //f.delete(); // delete the upload file
                             buff.close();
                        conn.close();
                        else
                        { System.out.println("No files to process"); }
              catch(Exception e) { System.out.println("My Error: " + e); }

    Code's too badly formatted to read, but logging is considered an old chestnut these days anyway:
    If you're using JDK 1.4, use the java.util.logging package http://java.sun.com/j2se/1.4.1/docs/api/java/util/logging/package-summary.html
    If you're using JDK 1.3 or earlir, use Apache log4j http://jakarta.apache.org/log4j/docs/index.html
    If you have to run in both old a new VMs, use log4j.

  • Extract a part from a txt file

    Hi, I've a simple problem which unfortunately can not solve.
    I have some txt's that I want only to extract a part o them. (The first 100 characters). Here is my code:
    import java.io.*;
    public class ReadSource {
         public static void main(String[] arguments) {
            try {
              FileReader file = new FileReader("1.txt");
              BufferedReader buff = new BufferedReader(file);
               boolean eof = false;
               while (!eof) {
                    String line = buff.readLine();
                    if (line == null)
                        eof = true;
                     else{
                     int start = line.indexOf("something");
                     int end = line.indexOf("something_else");
                     String str2 = line.substring(start, end);
                      System.out.println(str2);
                buff.close();
            } catch (IOException e) {
                System.out.println("Error -- " + e.toString());
    }and the error tha java displays is:
    java.lang.StringIndexOutOfBoundsException: String index out of range: -1
         at java.lang.String.substring(String.java:1438)
         at ReadSource.main(ReadSource.java:21)
    Exception in thread "main"

    Tim I'm very sorry but is still don't work. It still display the same error.
    Look at my code
    import java.io.*;
    public class ReadSource {
         public static void main(String[] arguments) {
           try {
                   BufferedReader reader = new BufferedReader(new FileReader("1.txt"));
                   BufferedWriter writer = new BufferedWriter(new StringWriter());
                   String line = null;
                   while ((line = reader.readLine()) != null) {
                       writer.write(line);
                       writer.newLine();
                   String content = writer.toString();
                   // Now you have the whole file content into the content String
                   int start = content.indexOf("smth");
                   int end = content.indexOf("smth2");
                   String str2 = content.substring(start,end);
                   System.out.println("start = "+start+", end = "+end);
                   System.out.println(str2);
               reader.close();
         }catch (IOException e) {
                System.out.println("Error -- " + e.toString());
    }It looks very logical, I don't know what happens
    Thank you very much for your help.
    Kostas

  • Bytes read from Socket buffer

    Hi,
    I'm writing a proxy application that relays data from a server to a client that requested the data. One thing I have observed is that when I have read about 32136 bytes of data, my reads from my buffered input stream fetch only one byte at a time. Not only is my read function now reading only one byte at a time, but it takes over a minute to fetch 83 bytes of data. And the delay gets worse the longer I run.
    In an effort to stress test my app, I deliberately set the send and receive buffers of the client socket to a small value (128 bytes). I can understand that filling up the buffer could slow down the reading, but what is odd is that long after the client has digested all the data, the Input stream reads never seem to go back to their original speed.
    Is this an O/s thing? a JVM thing? I'm running JDK 1.3.1 on an intel box with Linux Redhad 6.2. It seems to me that there must be some way of getting the socket buffer clear on the receive side so that I can get something that ressembles a normal dataflow. Oh, and I tried toggling the TCP no delay flag to no avail.
    Any suggestions?
    -hugh

    However, even with a large socket buffer, there is
    always the chance that the receiving app will run
    slowly due to bad programming, network latency, etc
    (we're not the authors of the clients who will
    connect), meaning even with the maximum buffer size,
    we could fill the socket buffer. I suppose, though,
    if it is the sender app that is getting fooled, then
    it's a matter for the authors of the sending
    application.True but the same thing will happen if the client connects directly to the server without your proxy, so why worry? General tips for writing proxies: use as large a buffer as possible, run separate reading and writing threads in your proxy, and propagate an EOF by doing shutdownOutput in the opposite direction. When you have done this in both directions you can close the socket, not before.

  • EOF expected after end document tag

    I'm trying to serialize java objects over a network stream using Oracle's XML Parser for java (v2.027). I was using a parser that did not buffer within a document, so was able to send multiple objects within a single document. However, I'd really like to use oracle's parser. I can't seem to turn off buffering, so sending each object as a document seems a viable alternative. Unfortunately, I can't seem to start a new document on the same stream... here's the error:
    WARN [952461810730]: ** Parsing error, line 2, uri null (in vesselworld.network.serialization.GDeserializer)
    WARN [952461810731]: <Line 2, Column 1>: XML-0100: (Error) Expected 'EOF'. (in vesselworld.network.serialization.GDeserializer)
    org.xml.sax.SAXParseException: <Line 2, Column 1>: XML-0100: (Error) Expected 'EOF'.
    at oracle.xml.parser.v2.XMLError.flushErrorHandler(XMLError.java:255)
    at oracle.xml.parser.v2.XMLError.flushErrors(XMLError.java:210)
    at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:215)
    at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:109)
    but for the volume of objects I'm sending (interface events - mouse clicks and such), repeatedly openning and closing a stream introduces way too much overhead... Any suggestions?
    Thanks...

    It means that your XML is not properly formed, and that you're likely missing some end tag for the "link" element somewhere.  (also worth checking all your other elements to ensure they have proper end tags.

  • HOW DO I DETECT EOF?

    I am using code to receive an HTTP message . It works fine, the only issue is, it takes too much of time to read the last character i.e. EOF. I have tried 3 approaches and all give me same results.
    Here are the approaches i tried
    1) reading char by char in loop till read operation returns -1
    2)reading byte by byte in loop till read operation returns -1
    3)reading complete message in one shot using a buffer by calling read in a loop till it returns -1
    4) reading line by line till read operation returns null.
    Please help if some body has faced this issue earlier.
    thanks in advance

    thanks for the reply. But unfortunately both the
    options don seem to be possible.
    1) I have to send back the reply in a synchronous way,
    so the connection can not be reset.
    2) Using content length is also not possible as i
    might get the japanese data encoded in SJIS. Hence,
    for performance reasons i want to read every thing in
    byte array and after reading everything , i can
    convert it to a String. Hence if reading has to happen
    before parsing, i can not get the content length as
    i'll have to read all the bytes first.Huh?
    Why is it a problem to read until you find the content-length?
    And the HTTP protocol is defined in terms of the content-length. So if you don't want to use that then you should use a different protocol.

Maybe you are looking for

  • Help needed in getting file url

    Hi, I work in a project where i need to get the url of the specified file. The code for that is as, URL fileURL = Thread.currentThread().getContextClassLoader().getResource(); The required resource is available in the concerned path. But the file url

  • Pairing issue

    hi i have got some problem about pairing my iphone 5s to my macbook pro retina yosemite OS can u tell me what to do ?thanks advance

  • Which JSF template technology? Best practices?

    Which templating technology is most suitable for use with JSF? What are my options? I'd just like to use the templating framework which is most accepted, and has flexibility.

  • My Toolbars are gone when Acrobat is opened.

    When I open Acrobat 8.0 Standard on its own my default tool bars are open, but when I double-click on a .pdf file, my tool bars are gone. I can reset them and they reappear, but they are gone again the next time Acrobat opens when a .pdf is opened. A

  • Playing 2 Video Tracks simultaneously in FCP?

    Hello everybody. Have been asking around for the last couple of days but no-one seemed to be able to help me out. My question: Is there a way of playing 2 video tracks from the timeline simultaneously and viewing what is happening in each of the 2 tr