<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FFile_Input_Output%2FFileOutputStream</id>
		<title>Java/File Input Output/FileOutputStream - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FFile_Input_Output%2FFileOutputStream"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/File_Input_Output/FileOutputStream&amp;action=history"/>
		<updated>2026-04-22T22:18:07Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/File_Input_Output/FileOutputStream&amp;diff=6171&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/File_Input_Output/FileOutputStream&amp;diff=6171&amp;oldid=prev"/>
				<updated>2010-06-01T06:03:17Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:03, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/File_Input_Output/FileOutputStream&amp;diff=6170&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/File_Input_Output/FileOutputStream&amp;diff=6170&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Append output to file using FileOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileOutputStream fos = new FileOutputStream(&amp;quot;C:/demo.txt&amp;quot;, true);&lt;br /&gt;
    fos.write(&amp;quot;Appended&amp;quot;.getBytes());&lt;br /&gt;
    fos.close();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copy byte between FileInputStream and FileOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
class Copy {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileInputStream fis = null;&lt;br /&gt;
    FileOutputStream fos = null;&lt;br /&gt;
    fis = new FileInputStream(args[0]);&lt;br /&gt;
    fos = new FileOutputStream(args[1]);&lt;br /&gt;
    int byte_;&lt;br /&gt;
    while ((byte_ = fis.read()) != -1)&lt;br /&gt;
      fos.write(byte_);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copy Bytes between FileInputStream and FileOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
public class CopyBytes {&lt;br /&gt;
  public static void main(String[] args) throws IOException {&lt;br /&gt;
    FileInputStream in = null;&lt;br /&gt;
    FileOutputStream out = null;&lt;br /&gt;
    try {&lt;br /&gt;
      in = new FileInputStream(&amp;quot;xanadu.txt&amp;quot;);&lt;br /&gt;
      out = new FileOutputStream(&amp;quot;outagain.txt&amp;quot;);&lt;br /&gt;
      int c;&lt;br /&gt;
      while ((c = in.read()) != -1) {&lt;br /&gt;
        out.write(c);&lt;br /&gt;
      }&lt;br /&gt;
    } finally {&lt;br /&gt;
      if (in != null) {&lt;br /&gt;
        in.close();&lt;br /&gt;
      }&lt;br /&gt;
      if (out != null) {&lt;br /&gt;
        out.close();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create DataOutputStream from FileOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.DataOutputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileOutputStream fos = new FileOutputStream(&amp;quot;C:/demo.txt&amp;quot;);&lt;br /&gt;
    DataOutputStream dos = new DataOutputStream(fos);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create FileOutputStream object from File object ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    File file = new File(&amp;quot;C:/demo.txt&amp;quot;);&lt;br /&gt;
    FileOutputStream fos = new FileOutputStream(file);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create FileOutputStream object from String file path ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileOutputStream fos = new FileOutputStream(&amp;quot;C:/demo.txt&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== File IO ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
public class FileIOApp {&lt;br /&gt;
  public static void main(String args[]) throws IOException {&lt;br /&gt;
    FileOutputStream outStream = new FileOutputStream(&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
    String s = &amp;quot;This is a test.&amp;quot;;&lt;br /&gt;
    for (int i = 0; i &amp;lt; s.length(); ++i)&lt;br /&gt;
      outStream.write(s.charAt(i));&lt;br /&gt;
    outStream.close();&lt;br /&gt;
    FileInputStream inStream = new FileInputStream(&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
    int inBytes = inStream.available();&lt;br /&gt;
    System.out.println(&amp;quot;inStream has &amp;quot; + inBytes + &amp;quot; available bytes&amp;quot;);&lt;br /&gt;
    byte inBuf[] = new byte[inBytes];&lt;br /&gt;
    int bytesRead = inStream.read(inBuf, 0, inBytes);&lt;br /&gt;
    System.out.println(bytesRead + &amp;quot; bytes were read&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;They are: &amp;quot; + new String(inBuf));&lt;br /&gt;
    inStream.close();&lt;br /&gt;
    File f = new File(&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
    f.delete();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rollover FileOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//&lt;br /&gt;
//Copyright 2006 Mort Bay Consulting Pty. Ltd.&lt;br /&gt;
//------------------------------------------------------------------------&lt;br /&gt;
//Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;br /&gt;
//you may not use this file except in compliance with the License.&lt;br /&gt;
//You may obtain a copy of the License at&lt;br /&gt;
//http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
//Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
//distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
//See the License for the specific language governing permissions and&lt;br /&gt;
//limitations under the License.&lt;br /&gt;
//&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.FilterOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.text.SimpleDateFormat;&lt;br /&gt;
import java.util.Calendar;&lt;br /&gt;
import java.util.Date;&lt;br /&gt;
import java.util.GregorianCalendar;&lt;br /&gt;
import java.util.StringTokenizer;&lt;br /&gt;
import java.util.TimeZone;&lt;br /&gt;
import java.util.Timer;&lt;br /&gt;
import java.util.TimerTask;&lt;br /&gt;
/**&lt;br /&gt;
 * RolloverFileOutputStream&lt;br /&gt;
 * &lt;br /&gt;
 * @author Greg Wilkins&lt;br /&gt;
 */&lt;br /&gt;
public class RolloverFileOutputStream extends FilterOutputStream {&lt;br /&gt;
  private static Timer __rollover;&lt;br /&gt;
  final static String YYYY_MM_DD = &amp;quot;yyyy_mm_dd&amp;quot;;&lt;br /&gt;
  private RollTask _rollTask;&lt;br /&gt;
  private SimpleDateFormat _fileBackupFormat = new SimpleDateFormat(System.getProperty(&lt;br /&gt;
      &amp;quot;ROLLOVERFILE_BACKUP_FORMAT&amp;quot;, &amp;quot;HHmmssSSS&amp;quot;));&lt;br /&gt;
  private SimpleDateFormat _fileDateFormat = new SimpleDateFormat(System.getProperty(&lt;br /&gt;
      &amp;quot;ROLLOVERFILE_DATE_FORMAT&amp;quot;, &amp;quot;yyyy_MM_dd&amp;quot;));&lt;br /&gt;
  private String _filename;&lt;br /&gt;
  private File _file;&lt;br /&gt;
  private boolean _append;&lt;br /&gt;
  private int _retainDays;&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  public RolloverFileOutputStream(String filename) throws IOException {&lt;br /&gt;
    this(filename, true, Integer.getInteger(&amp;quot;ROLLOVERFILE_RETAIN_DAYS&amp;quot;, 31).intValue());&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  public RolloverFileOutputStream(String filename, boolean append) throws IOException {&lt;br /&gt;
    this(filename, append, Integer.getInteger(&amp;quot;ROLLOVERFILE_RETAIN_DAYS&amp;quot;, 31).intValue());&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  public RolloverFileOutputStream(String filename, boolean append, int retainDays)&lt;br /&gt;
      throws IOException {&lt;br /&gt;
    this(filename, append, retainDays, TimeZone.getDefault());&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  public RolloverFileOutputStream(String filename, boolean append, int retainDays, TimeZone zone)&lt;br /&gt;
      throws IOException {&lt;br /&gt;
    super(null);&lt;br /&gt;
    _fileBackupFormat.setTimeZone(zone);&lt;br /&gt;
    _fileDateFormat.setTimeZone(zone);&lt;br /&gt;
    if (filename != null) {&lt;br /&gt;
      filename = filename.trim();&lt;br /&gt;
      if (filename.length() == 0)&lt;br /&gt;
        filename = null;&lt;br /&gt;
    }&lt;br /&gt;
    if (filename == null)&lt;br /&gt;
      throw new IllegalArgumentException(&amp;quot;Invalid filename&amp;quot;);&lt;br /&gt;
    _filename = filename;&lt;br /&gt;
    _append = append;&lt;br /&gt;
    _retainDays = retainDays;&lt;br /&gt;
    setFile();&lt;br /&gt;
    synchronized (RolloverFileOutputStream.class) {&lt;br /&gt;
      if (__rollover == null)&lt;br /&gt;
        __rollover = new Timer();&lt;br /&gt;
      _rollTask = new RollTask();&lt;br /&gt;
      Calendar now = Calendar.getInstance();&lt;br /&gt;
      now.setTimeZone(zone);&lt;br /&gt;
      GregorianCalendar midnight = new GregorianCalendar(now.get(Calendar.YEAR), now&lt;br /&gt;
          .get(Calendar.MONTH), now.get(Calendar.DAY_OF_MONTH), 23, 0);&lt;br /&gt;
      midnight.setTimeZone(zone);&lt;br /&gt;
      midnight.add(Calendar.HOUR, 1);&lt;br /&gt;
      __rollover.scheduleAtFixedRate(_rollTask, midnight.getTime(), 1000L * 60 * 60 * 24);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  public String getFilename() {&lt;br /&gt;
    return _filename;&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  public String getDatedFilename() {&lt;br /&gt;
    if (_file == null)&lt;br /&gt;
      return null;&lt;br /&gt;
    return _file.toString();&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  public int getRetainDays() {&lt;br /&gt;
    return _retainDays;&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  private synchronized void setFile() throws IOException {&lt;br /&gt;
    // Check directory&lt;br /&gt;
    File file = new File(_filename);&lt;br /&gt;
    _filename = file.getCanonicalPath();&lt;br /&gt;
    file = new File(_filename);&lt;br /&gt;
    File dir = new File(file.getParent());&lt;br /&gt;
    if (!dir.isDirectory() || !dir.canWrite())&lt;br /&gt;
      throw new IOException(&amp;quot;Cannot write log directory &amp;quot; + dir);&lt;br /&gt;
    Date now = new Date();&lt;br /&gt;
    // Is this a rollover file?&lt;br /&gt;
    String filename = file.getName();&lt;br /&gt;
    int i = filename.toLowerCase().indexOf(YYYY_MM_DD);&lt;br /&gt;
    if (i &amp;gt;= 0) {&lt;br /&gt;
      file = new File(dir, filename.substring(0, i) + _fileDateFormat.format(now)&lt;br /&gt;
          + filename.substring(i + YYYY_MM_DD.length()));&lt;br /&gt;
    }&lt;br /&gt;
    if (file.exists() &amp;amp;&amp;amp; !file.canWrite())&lt;br /&gt;
      throw new IOException(&amp;quot;Cannot write log file &amp;quot; + file);&lt;br /&gt;
    // Do we need to change the output stream?&lt;br /&gt;
    if (out == null || !file.equals(_file)) {&lt;br /&gt;
      // Yep&lt;br /&gt;
      _file = file;&lt;br /&gt;
      if (!_append &amp;amp;&amp;amp; file.exists())&lt;br /&gt;
        file.renameTo(new File(file.toString() + &amp;quot;.&amp;quot; + _fileBackupFormat.format(now)));&lt;br /&gt;
      OutputStream oldOut = out;&lt;br /&gt;
      out = new FileOutputStream(file.toString(), _append);&lt;br /&gt;
      if (oldOut != null)&lt;br /&gt;
        oldOut.close();&lt;br /&gt;
      // if(log.isDebugEnabled())log.debug(&amp;quot;Opened &amp;quot;+_file);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  private void removeOldFiles() {&lt;br /&gt;
    if (_retainDays &amp;gt; 0) {&lt;br /&gt;
      Calendar retainDate = Calendar.getInstance();&lt;br /&gt;
      retainDate.add(Calendar.DATE, -_retainDays);&lt;br /&gt;
      int borderYear = retainDate.get(java.util.Calendar.YEAR);&lt;br /&gt;
      int borderMonth = retainDate.get(java.util.Calendar.MONTH) + 1;&lt;br /&gt;
      int borderDay = retainDate.get(java.util.Calendar.DAY_OF_MONTH);&lt;br /&gt;
      File file = new File(_filename);&lt;br /&gt;
      File dir = new File(file.getParent());&lt;br /&gt;
      String fn = file.getName();&lt;br /&gt;
      int s = fn.toLowerCase().indexOf(YYYY_MM_DD);&lt;br /&gt;
      if (s &amp;lt; 0)&lt;br /&gt;
        return;&lt;br /&gt;
      String prefix = fn.substring(0, s);&lt;br /&gt;
      String suffix = fn.substring(s + YYYY_MM_DD.length());&lt;br /&gt;
      String[] logList = dir.list();&lt;br /&gt;
      for (int i = 0; i &amp;lt; logList.length; i++) {&lt;br /&gt;
        fn = logList[i];&lt;br /&gt;
        if (fn.startsWith(prefix) &amp;amp;&amp;amp; fn.indexOf(suffix, prefix.length()) &amp;gt;= 0) {&lt;br /&gt;
          try {&lt;br /&gt;
            StringTokenizer st = new StringTokenizer(fn.substring(prefix.length(), prefix.length()&lt;br /&gt;
                + YYYY_MM_DD.length()), &amp;quot;_.&amp;quot;);&lt;br /&gt;
            int nYear = Integer.parseInt(st.nextToken());&lt;br /&gt;
            int nMonth = Integer.parseInt(st.nextToken());&lt;br /&gt;
            int nDay = Integer.parseInt(st.nextToken());&lt;br /&gt;
            if (nYear &amp;lt; borderYear || (nYear == borderYear &amp;amp;&amp;amp; nMonth &amp;lt; borderMonth)&lt;br /&gt;
                || (nYear == borderYear &amp;amp;&amp;amp; nMonth == borderMonth &amp;amp;&amp;amp; nDay &amp;lt;= borderDay)) {&lt;br /&gt;
              // log.info(&amp;quot;Log age &amp;quot;+fn);&lt;br /&gt;
              new File(dir, fn).delete();&lt;br /&gt;
            }&lt;br /&gt;
          } catch (Exception e) {&lt;br /&gt;
            // if (log.isDebugEnabled())&lt;br /&gt;
            e.printStackTrace();&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  public void write(byte[] buf) throws IOException {&lt;br /&gt;
    out.write(buf);&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  public void write(byte[] buf, int off, int len) throws IOException {&lt;br /&gt;
    out.write(buf, off, len);&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  /** &lt;br /&gt;
   */&lt;br /&gt;
  public void close() throws IOException {&lt;br /&gt;
    synchronized (RolloverFileOutputStream.class) {&lt;br /&gt;
      try {&lt;br /&gt;
        super.close();&lt;br /&gt;
      } finally {&lt;br /&gt;
        out = null;&lt;br /&gt;
        _file = null;&lt;br /&gt;
      }&lt;br /&gt;
      _rollTask.cancel();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  /* ------------------------------------------------------------ */&lt;br /&gt;
  private class RollTask extends TimerTask {&lt;br /&gt;
    public void run() {&lt;br /&gt;
      try {&lt;br /&gt;
        RolloverFileOutputStream.this.setFile();&lt;br /&gt;
        RolloverFileOutputStream.this.removeOldFiles();&lt;br /&gt;
      } catch (IOException e) {&lt;br /&gt;
        e.printStackTrace();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Split file ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
class FileSplitter {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    FileInputStream fis = new FileInputStream(args[0]);&lt;br /&gt;
    int size = 1024;&lt;br /&gt;
    byte buffer[] = new byte[size];&lt;br /&gt;
    int count = 0;&lt;br /&gt;
    while (true) {&lt;br /&gt;
      int i = fis.read(buffer, 0, size);&lt;br /&gt;
      if (i == -1)&lt;br /&gt;
        break;&lt;br /&gt;
      String filename = args[1] + count;&lt;br /&gt;
      FileOutputStream fos = new FileOutputStream(filename);&lt;br /&gt;
      fos.write(buffer, 0, i);&lt;br /&gt;
      fos.flush();&lt;br /&gt;
      fos.close();&lt;br /&gt;
      ++count;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use FileOutputStream to write the bytes to a file. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    byte[] vals = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 };&lt;br /&gt;
    FileOutputStream fout = new FileOutputStream(&amp;quot;Test.dat&amp;quot;);&lt;br /&gt;
    for (int i = 0; i &amp;lt; vals.length; i += 2)&lt;br /&gt;
      fout.write(vals[i]);&lt;br /&gt;
    fout.close();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Write byte array to a file using FileOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    String strFilePath = &amp;quot;C://demo.txt&amp;quot;;&lt;br /&gt;
    FileOutputStream fos = new FileOutputStream(strFilePath);&lt;br /&gt;
    String strContent = &amp;quot;Write File using Java FileOutputStream example !&amp;quot;;&lt;br /&gt;
    fos.write(strContent.getBytes());&lt;br /&gt;
    fos.close();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Write data with FileOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
class FileOutputStreamDemo {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    FileOutputStream fos = new FileOutputStream(args[0]);&lt;br /&gt;
    // Write 12 bytes to the file&lt;br /&gt;
    for (int i = 0; i &amp;lt; 12; i++) {&lt;br /&gt;
      fos.write(i);&lt;br /&gt;
    }&lt;br /&gt;
    // Close file output stream&lt;br /&gt;
    fos.close();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Write double to a file using DataOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.DataOutputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    String strFilePath = &amp;quot;C:/Double.txt&amp;quot;;&lt;br /&gt;
    FileOutputStream fos = new FileOutputStream(strFilePath);&lt;br /&gt;
    DataOutputStream dos = new DataOutputStream(fos);&lt;br /&gt;
    double d = 1;&lt;br /&gt;
    dos.writeDouble(d);&lt;br /&gt;
    dos.close();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Write file using FileOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    FileOutputStream fos = new FileOutputStream(&amp;quot;C:/demo.txt&amp;quot;);&lt;br /&gt;
    byte b = 01;&lt;br /&gt;
    fos.write(b);&lt;br /&gt;
    fos.close();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Write UTF String, integer and double with DataOutputStream ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.io.BufferedOutputStream;&lt;br /&gt;
import java.io.DataOutputStream;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    FileOutputStream fileOut = new FileOutputStream(&amp;quot;data.txt&amp;quot;);&lt;br /&gt;
    BufferedOutputStream buffer = new BufferedOutputStream(fileOut);&lt;br /&gt;
    DataOutputStream dataOut = new DataOutputStream(buffer);&lt;br /&gt;
    dataOut.writeUTF(&amp;quot;Hello!&amp;quot;);&lt;br /&gt;
    dataOut.writeInt(4);&lt;br /&gt;
    dataOut.writeDouble(100.0);&lt;br /&gt;
    dataOut.close();&lt;br /&gt;
    buffer.close();&lt;br /&gt;
    fileOut.close();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>