Java/File Input Output/DataOutputStream
Содержание
- 1 Create DataOutputStream from FileOutputStream and Write various types of data
- 2 DataInputStream, DataOutputStream
- 3 DataInputStream out of FileInputStream, DataOutputStream out of FileOutputStream
- 4 DataOutputStream and DataInputStream: write and read primitive data type to a file
- 5 Determine number of bytes written to DataOutputStream
- 6 Flush output stream
- 7 new DataOutputStream(new BufferedOutputStream(new FileOutputStream()))
- 8 Provide a debug trace of the stuff thats being written out into the DataOutputStream
- 9 Write boolean to a file using DataOutputStream
- 10 Write byte to a file using DataOutputStream
- 11 Write char to a file using DataOutputStream
- 12 Write different data types with DataOutputStream
- 13 Write float to a file using DataOutputStream
- 14 Write int to a file using DataOutputStream
- 15 Write long to a file using DataOutputStream
- 16 Write short to a file using DataOutputStream
- 17 Write short type value with DataOutputStream
- 18 Write String as bytes to a file using DataOutputStream
- 19 Write String as characters to a file using DataOutputStream
Create DataOutputStream from FileOutputStream and Write various types of data
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; class DataOutputStreamDemo {
public static void main(String args[]) throws Exception { FileOutputStream fos = new FileOutputStream(args[0]); DataOutputStream dos = new DataOutputStream(fos); // Write various types of data dos.writeBoolean(false); dos.writeByte(Byte.MAX_VALUE); dos.writeChar("A"); dos.writeDouble(Double.MAX_VALUE); dos.writeFloat(Float.MAX_VALUE); dos.writeInt(Integer.MAX_VALUE); dos.writeLong(Long.MAX_VALUE); dos.writeShort(Short.MAX_VALUE); fos.close(); }
}
</source>
DataInputStream, DataOutputStream
<source lang="java">
import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; class DOSDISDemo {
public static void main(String[] args) throws Exception { DataOutputStream dos = null; FileOutputStream fos = new FileOutputStream("data.dat"); dos = new DataOutputStream(fos); dos.writeInt(256); dos.writeDouble(Math.PI); dos.writeUTF("Java"); DataInputStream dis = null; FileInputStream fis = new FileInputStream("data.dat"); dis = new DataInputStream(fis); System.out.println(dis.readInt()); System.out.println(dis.readDouble()); System.out.println(dis.readUTF()); }
}
</source>
DataInputStream out of FileInputStream, DataOutputStream out of FileOutputStream
<source lang="java">
/*
* Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Sun Microsystems nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
import java.io.DataInput; import java.io.DataInputStream; import java.io.DataOutput; import java.io.DataOutputStream; import java.io.EOFException; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class CheckedDIDemo {
public static void main(String[] args) throws IOException { Adler32 inChecker = new Adler32(); Adler32 outChecker = new Adler32(); CheckedDataInput in = null; CheckedDataOutput out = null; try { in = new CheckedDataInput(new DataInputStream(new FileInputStream("xanadu.txt")),inChecker); out = new CheckedDataOutput(new DataOutputStream(new FileOutputStream("outagain.txt")),outChecker); } catch (FileNotFoundException e) { System.err.println("CheckedIOTest: " + e); System.exit(-1); } catch (IOException e) { System.err.println("CheckedIOTest: " + e); System.exit(-1); } boolean EOF = false; while (!EOF) { try { int c = in.readByte(); out.write(c); } catch (EOFException e) { EOF = true; } } System.out.println("Input stream check sum: " + in.getChecksum().getValue()); System.out.println("Output stream check sum: " + out.getChecksum().getValue()); }
} /*
* Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Sun Microsystems nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ class Adler32 implements Checksum { private int value = 1; /* * BASE is the largest prime number smaller than 65536 * NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ private static final int BASE = 65521; private static final int NMAX = 5552; /** * Update current Adler-32 checksum given the specified byte. */ public void update(int b) { int s1 = value & 0xffff; int s2 = (value >> 16) & 0xffff; s1 += b & 0xff; s2 += s1; value = ((s2 % BASE) << 16) | (s1 % BASE); } /** * Update current Adler-32 checksum given the specified byte array. */ public void update(byte[] b, int off, int len) { int s1 = value & 0xffff; int s2 = (value >> 16) & 0xffff; while (len > 0) { int k = len < NMAX ? len : NMAX; len -= k; while (k-- > 0) { s1 += b[off++] & 0xff; s2 += s1; } s1 %= BASE; s2 %= BASE; } value = (s2 << 16) | s1; } /** * Reset Adler-32 checksum to initial value. */ public void reset() { value = 1; } /** * Returns current checksum value. */ public long getValue() { return (long)value & 0xffffffff; }
}
/* * Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Sun Microsystems nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ interface Checksum { /** * Updates the current checksum with the specified byte. */ public void update(int b); /** * Updates the current checksum with the specified array of bytes. */ public void update(byte[] b, int off, int len); /** * Returns the current checksum value. */ public long getValue(); /** * Resets the checksum to its initial value. */ public void reset(); } /* * Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Sun Microsystems nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * This class is an example only. A "final" version of * this class should implement the DataOutput interface * and provide implementations for the methods declared in * DataOutput. */ class CheckedDataOutput { private Checksum cksum; private DataOutput out; public CheckedDataOutput(DataOutput out, Checksum cksum) { this.cksum = cksum; this.out = out; } public void write(int b) throws IOException { out.write(b); cksum.update(b); } public void write(byte[] b) throws IOException { out.write(b, 0, b.length); cksum.update(b, 0, b.length); } public void write(byte[] b, int off, int len) throws IOException { out.write(b, off, len); cksum.update(b, off, len); } public Checksum getChecksum() { return cksum; } }
/* * Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Sun Microsystems nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * This class is an example only. A "final" version of * this class should implement the DataInput interface * and provide implementations for the methods declared in * DataInput. */ class CheckedDataInput { private Checksum cksum; private DataInput in; public CheckedDataInput(DataInput in, Checksum cksum) { this.cksum = cksum; this.in = in; } public byte readByte() throws IOException { byte b = in.readByte(); cksum.update(b); return b; } public void readFully(byte[] b) throws IOException { in.readFully(b, 0, b.length); cksum.update(b, 0, b.length); } public void readFully(byte[] b, int off, int len) throws IOException { in.readFully(b, off, len); cksum.update(b, off, len); } public Checksum getChecksum() { return cksum; } } </source>
DataOutputStream and DataInputStream: write and read primitive data type to a file
<source lang="java">
import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception{ int idA = 1; String nameA = "City"; int populationA = 5; float tempA = 1.0f; int idB = 2; String nameB = "S"; int populationB = 2; float tempB = 1.45f; FileOutputStream fos = new FileOutputStream("cities.dat"); DataOutputStream dos = new DataOutputStream(fos); dos.writeInt(idA); dos.writeUTF(nameA); dos.writeInt(populationA); dos.writeFloat(tempA); dos.writeInt(idB); dos.writeUTF(nameB); dos.writeInt(populationB); dos.writeFloat(tempB); dos.flush(); dos.close(); FileInputStream fis = new FileInputStream("cities.dat"); DataInputStream dis = new DataInputStream(fis); int cityId = dis.readInt(); System.out.println("City Id: " + cityId); String cityName = dis.readUTF(); System.out.println("City Name: " + cityName); int cityPopulation = dis.readInt(); System.out.println("City Population: " + cityPopulation); float cityTemperature = dis.readFloat(); System.out.println("City Temperature: " + cityTemperature); }
}
</source>
Determine number of bytes written to DataOutputStream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("C:/Bytes.txt"); DataOutputStream dos = new DataOutputStream(fos); dos.writeBytes("this is a test"); int bytesWritten = dos.size(); System.out.println("Total " + bytesWritten + " bytes are written to stream."); dos.close(); }
}
</source>
Flush output stream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("C:/WriteByte.txt"); DataOutputStream dos = new DataOutputStream(fos); dos.writeBytes("this is a test"); dos.flush(); dos.close(); }
}
</source>
new DataOutputStream(new BufferedOutputStream(new FileOutputStream()))
<source lang="java">
/*
* Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Sun Microsystems nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.EOFException; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class DataStreams {
static final String dataFile = "invoicedata"; static final double[] prices = { 19.99, 9.99, 15.99, 3.99, 4.99 }; static final int[] units = { 12, 8, 13, 29, 50 }; static final String[] descs = { "Java T-shirt", "Java Mug", "Duke Juggling Dolls", "Java Pin", "Java Key Chain" }; public static void main(String[] args) throws IOException { DataOutputStream out = null; try { out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream( dataFile))); for (int i = 0; i < prices.length; i++) { out.writeDouble(prices[i]); out.writeInt(units[i]); out.writeUTF(descs[i]); } } finally { out.close(); } DataInputStream in = null; double total = 0.0; try { in = new DataInputStream(new BufferedInputStream(new FileInputStream( dataFile))); double price; int unit; String desc; try { while (true) { price = in.readDouble(); unit = in.readInt(); desc = in.readUTF(); System.out.format("You ordered %d units of %s at $%.2f%n", unit, desc, price); total += unit * price; } } catch (EOFException e) { } System.out.format("For a TOTAL of: $%.2f%n", total); } finally { in.close(); } }
}
</source>
Provide a debug trace of the stuff thats being written out into the DataOutputStream
<source lang="java">
/*
* The contents of this file are subject to the terms * of the Common Development and Distribution License * (the "License"). You may not use this file except * in compliance with the License. * * You can obtain a copy of the license at * glassfish/bootstrap/legal/CDDLv1.0.txt or * https://glassfish.dev.java.net/public/CDDLv1.0.html. * See the License for the specific language governing * permissions and limitations under the License. * * When distributing Covered Code, include this CDDL * HEADER in each file and include the License file at * glassfish/bootstrap/legal/CDDLv1.0.txt. If applicable, * add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your * own identifying information: Portions Copyright [yyyy] * [name of copyright owner] */
/*
* @(#)TraceOutputStream.java 1.5 05/08/29 * * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. */
// revised from sun mail util import java.io.FilterOutputStream; import java.io.IOException; import java.io.OutputStream; /**
* This class is a subclass of DataOutputStream that copies the * data being written into the DataOutputStream into another output * stream. This class is used here to provide a debug trace of the * stuff thats being written out into the DataOutputStream. * * @author John Mani */
public class TraceOutputStream extends FilterOutputStream {
private boolean trace = false; private boolean quote = false; private OutputStream traceOut; /** * Creates an output stream filter built on top of the specified * underlying output stream. * * @param out the underlying output stream. * @param traceOut the trace stream. */ public TraceOutputStream(OutputStream out, OutputStream traceOut) { super(out); this.traceOut = traceOut; } /** * Set the trace mode. */ public void setTrace(boolean trace) { this.trace = trace; } /** * Set quote mode. * @param quote the quote mode */ public void setQuote(boolean quote) { this.quote = quote; } /** * Writes the specifiedbyte
to this output stream. * Writes out the byte into the trace stream if the trace mode * istrue
*/ public void write(int b) throws IOException { if (trace) { if (quote) writeByte(b); else traceOut.write(b); } out.write(b); } /** * Writesb.length
bytes to this output stream. * Writes out the bytes into the trace stream if the trace * mode istrue
*/ public void write(byte b[], int off, int len) throws IOException { if (trace) { if (quote) { for (int i = 0; i < len; i++) writeByte(b[off + i]); } else traceOut.write(b, off, len); } out.write(b, off, len); } /** * Write a byte in a way that every byte value is printable ASCII. */ private final void writeByte(int b) throws IOException { b &= 0xff; if (b > 0x7f) { traceOut.write("M"); traceOut.write("-"); b &= 0x7f; } if (b == "\r") { traceOut.write("\\"); traceOut.write("r"); } else if (b == "\n") { traceOut.write("\\"); traceOut.write("n"); traceOut.write("\n"); } else if (b == "\t") { traceOut.write("\\"); traceOut.write("t"); } else if (b < " ") { traceOut.write("^"); traceOut.write("@" + b); } else { traceOut.write(b); } }
}
</source>
Write boolean to a file using DataOutputStream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("C:/WriteBoolean.txt"); DataOutputStream dos = new DataOutputStream(fos); boolean b = false; dos.writeBoolean(b); dos.close(); }
}
</source>
Write byte to a file using DataOutputStream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("C:/WriteByte.txt"); DataOutputStream dos = new DataOutputStream(fos); int i = 1; dos.writeByte(i); dos.close(); }
}
</source>
Write char to a file using DataOutputStream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("C:/WriteChar.txt"); DataOutputStream dos = new DataOutputStream(fos); int ch = 65; dos.writeChar(ch); dos.close(); }
}
</source>
Write different data types with DataOutputStream
<source lang="java">
/*
* Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of Sun Microsystems nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.EOFException; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class DataStreams {
static final String dataFile = "invoicedata"; static final double[] prices = { 19.99, 9.99, 15.99, 3.99, 4.99 }; static final int[] units = { 12, 8, 13, 29, 50 }; static final String[] descs = { "Java T-shirt", "Java Mug", "Duke Juggling Dolls", "Java Pin", "Java Key Chain" }; public static void main(String[] args) throws IOException { DataOutputStream out = null; try { out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream( dataFile))); for (int i = 0; i < prices.length; i++) { out.writeDouble(prices[i]); out.writeInt(units[i]); out.writeUTF(descs[i]); } } finally { out.close(); } DataInputStream in = null; double total = 0.0; try { in = new DataInputStream(new BufferedInputStream(new FileInputStream( dataFile))); double price; int unit; String desc; try { while (true) { price = in.readDouble(); unit = in.readInt(); desc = in.readUTF(); System.out.format("You ordered %d units of %s at $%.2f%n", unit, desc, price); total += unit * price; } } catch (EOFException e) { } System.out.format("For a TOTAL of: $%.2f%n", total); } finally { in.close(); } }
}
</source>
Write float to a file using DataOutputStream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { String strFilePath = "C:/Float.txt"; FileOutputStream fos = new FileOutputStream(strFilePath); DataOutputStream dos = new DataOutputStream(fos); float f = 3.14f; dos.writeFloat(f); dos.close(); }
}
</source>
Write int to a file using DataOutputStream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception{ FileOutputStream fos = new FileOutputStream("C:/Int.txt"); DataOutputStream dos = new DataOutputStream(fos); int i = 100; dos.writeInt(i); dos.close(); }
}
</source>
Write long to a file using DataOutputStream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("C:/Long.txt"); DataOutputStream dos = new DataOutputStream(fos); long l = 65; dos.writeLong(l); dos.close(); }
}
</source>
Write short to a file using DataOutputStream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("C:/Short.txt"); DataOutputStream dos = new DataOutputStream(fos); short s = 1; dos.writeShort(s); dos.close(); }
}
</source>
Write short type value with DataOutputStream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; class Main {
public static void main(String args[]) throws Exception { FileOutputStream fos = new FileOutputStream(args[0]); DataOutputStream dos = new DataOutputStream(fos); dos.writeShort(1); fos.close(); }
}
</source>
Write String as bytes to a file using DataOutputStream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception{ FileOutputStream fos = new FileOutputStream("C:/Bytes.txt"); DataOutputStream dos = new DataOutputStream(fos); String str = "This is a test!"; dos.writeBytes(str); dos.close(); }
}
</source>
Write String as characters to a file using DataOutputStream
<source lang="java">
import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("C:/Chars.txt"); DataOutputStream dos = new DataOutputStream(fos); dos.writeChars("This is a test"); dos.close(); }
}
</source>