Serge Ratke: ODBC Quelle (Access, Excel) via Internet austauschen.

Hallo,
folgendes Problem:
Ein Client will auf einem Server (zwei unterschiedliche Rechner), die ODBC Quelle (Access oder Excel) austauschen (wegen aktualisierung oder so). Bisher passiert es so, dass ich die alte Datenquelle umbenenne und dann eine neue Datei anlege mit demselben Namen wie die Datenquelle (vor der umbenennung). Es klappt auch, allerdings wird außer des gültigen Access Datenbank Inhalts noch irgendetwas mitgespeichert, was die Formattierung der Datei völlig zerschießt. Woran liegt das?? Hier ist der Code der diese Datei erzeugt.

public static void createFile( String fileName, InputStream stream ) throws IOException {
 File newDatasource = new File(fileName);
 BufferedWriter writer = new BufferedWriter(new FileWriter         (newDatasource));
 BufferedReader reader = new BufferedReader(new InputStreamReader(stream));

char[] buf = new char[10000];
  int len;
  while ((len = reader.read(buf)) > 0 ) {
   writer.write(buf, 0, len);
  }

writer.close();
 }

  1. Hallo,

    folgendes Problem:
    Ein Client will auf einem Server (zwei unterschiedliche Rechner), die ODBC Quelle (Access oder Excel) austauschen (wegen aktualisierung oder so). Bisher passiert es so, dass ich die alte Datenquelle umbenenne und dann eine neue Datei anlege mit demselben Namen wie die Datenquelle (vor der umbenennung). Es klappt auch, allerdings wird außer des gültigen Access Datenbank Inhalts noch irgendetwas mitgespeichert, was die Formattierung der Datei völlig zerschießt. Woran liegt das?? Hier ist der Code der diese Datei erzeugt.

    public static void createFile( String fileName, InputStream stream ) throws IOException {
     File newDatasource = new File(fileName);
     BufferedWriter writer = new BufferedWriter(new FileWriter         (newDatasource));
     BufferedReader reader = new BufferedReader(new InputStreamReader(stream));

    char[] buf = new char[10000];
      int len;
      while ((len = reader.read(buf)) > 0 ) {
       writer.write(buf, 0, len);
      }

    writer.close();
     }

    Eventuell solltest Du bei binary files (Byte-Files) lieber mit FileInputStream und FileOutputStream arbeiten. Die kopieren Bytes, keine Chars ;-))

    import java.io.*;

    class Main {
        public static void main(String[] args) {
            if (args.length != 2) {
                System.err.println("java Main <inputfile> <outputfile>");
                System.exit(-1);
            }
            try {
                FileInputStream in = new FileInputStream(args[0]);
                FileOutputStream out = new FileOutputStream(args[1]);

    byte[] buf = new byte[512];
                int count;
                while ((count = in.read(buf)) > 0) {
                    out.write(buf, 0, count);
                }
                in.close();
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    Puffern kann st Du das dann mit BufferedInputStream und BufferedOutputStream.

    viele Grüße

    Axel