
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_io_BufferedWriter__
#define __java_io_BufferedWriter__

#pragma interface

#include <java/io/Writer.h>
#include <gcj/array.h>


class java::io::BufferedWriter : public ::java::io::Writer
{

public:
  BufferedWriter(::java::io::Writer *);
  BufferedWriter(::java::io::Writer *, jint);
  virtual void close();
  virtual void flush();
  virtual void newLine();
  virtual void write(jint);
  virtual void write(JArray< jchar > *, jint, jint);
  virtual void write(::java::lang::String *, jint, jint);
private:
  void localFlush();
  static const jint DEFAULT_BUFFER_SIZE = 8192;
  ::java::io::Writer * __attribute__((aligned(__alignof__( ::java::io::Writer)))) out;
public: // actually package-private
  JArray< jchar > * buffer;
  jint count;
public:
  static ::java::lang::Class class$;
};

#endif // __java_io_BufferedWriter__
