Java/File Input Output/DataInputStream — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 09:04, 1 июня 2010
Содержание
- 1 Check the class version
- 2 Create DataInputStream from FileInputStream and read different types of data
- 3 DataOutputStream and DataInputStream: read and write by data types
- 4 new DataInputStream(new BufferedInputStream(new FileInputStream()))
- 5 Read boolean from file using DataInputStream
- 6 Read byte array from file using DataInputStream
- 7 Read byte from file using DataInputStream
- 8 Read char from file using DataInputStream
- 9 Read different data types from DataInputStream
- 10 Read double from file using DataInputStream
- 11 Read float from file using DataInputStream
- 12 Read int from file using DataInputStream
- 13 Read long from file using DataInputStream
- 14 Read short from file using DataInputStream
- 15 Read short type of data with DataInputStream
- 16 Read unsigned byte from file using DataInputStream
- 17 Use DataInputStream to create double
Check the class version
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; import java.io.IOException; public class Main {
public static void main(String[] args) throws IOException { DataInputStream in = new DataInputStream(new FileInputStream("Main.class")); int start = in.readInt(); if (start != 0xcafebabe) { System.out.println("not valid"); } in.close(); System.out.println(in.readUnsignedShort()+"/"+in.readUnsignedShort()); }
}
</source>
Create DataInputStream from FileInputStream and read different types of data
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; class DataInputStreamDemo {
public static void main(String args[]) throws Exception { FileInputStream fis = new FileInputStream(args[0]); DataInputStream dis = new DataInputStream(fis); System.out.println(dis.readBoolean()); System.out.println(dis.readByte()); System.out.println(dis.readChar()); System.out.println(dis.readDouble()); System.out.println(dis.readFloat()); System.out.println(dis.readInt()); System.out.println(dis.readLong()); System.out.println(dis.readShort()); fis.close(); }
}
</source>
DataOutputStream and DataInputStream: read and write by data types
<source lang="java">
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] atgs) throws Exception { DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("java.txt"))); out.writeUTF(""); out.writeBytes("a"); out.writeChars("aaa"); out.close(); DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream("java.txt"))); System.out.println(in.readUTF()); byte[] buf = new byte[1024]; int len = in.read(buf); System.out.println(new String(buf, 0, len)); in.close(); }
}
</source>
new DataInputStream(new BufferedInputStream(new FileInputStream()))
<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>
Read boolean from file using DataInputStream
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { FileInputStream fin = new FileInputStream("C:/n.txt"); DataInputStream din = new DataInputStream(fin); boolean b = din.readBoolean(); System.out.println("boolean : " + b); din.close(); }
}
</source>
Read byte array from file using DataInputStream
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { FileInputStream fin = new FileInputStream("C:/Array.txt"); DataInputStream din = new DataInputStream(fin); byte b[] = new byte[10]; din.read(b); din.close(); }
}
</source>
Read byte from file using DataInputStream
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { FileInputStream fin = new FileInputStream("C:/Byte.txt"); DataInputStream din = new DataInputStream(fin); byte b = din.readByte(); System.out.println("byte : " + b); din.close(); }
}
</source>
Read char from file using DataInputStream
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception{ FileInputStream fin = new FileInputStream("C:/Char.txt"); DataInputStream din = new DataInputStream(fin); char ch = din.readChar(); System.out.println("Char : " + ch); din.close(); }
}
</source>
Read different data types from DataInputStream
<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>
Read double from file using DataInputStream
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { FileInputStream fin = new FileInputStream("C:/read.txt"); DataInputStream din = new DataInputStream(fin); double d = din.readDouble(); System.out.println("Double : " + d); din.close(); }
}
</source>
Read float from file using DataInputStream
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { FileInputStream fin = new FileInputStream("C:/Float.txt"); DataInputStream din = new DataInputStream(fin); float f = din.readFloat(); System.out.println("float : " + f); din.close(); }
}
</source>
Read int from file using DataInputStream
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { FileInputStream fin = new FileInputStream("C:/Int.txt"); DataInputStream din = new DataInputStream(fin); int i = din.readInt(); System.out.println("int : " + i); din.close(); }
}
</source>
Read long from file using DataInputStream
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { FileInputStream fin = new FileInputStream("C:/Long.txt"); DataInputStream din = new DataInputStream(fin); long l = din.readLong(); System.out.println("long : " + l); din.close(); }
}
</source>
Read short from file using DataInputStream
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { FileInputStream fin = new FileInputStream("C:/Short.txt"); DataInputStream din = new DataInputStream(fin); short s = din.readShort(); System.out.println("short : " + s); din.close(); }
}
</source>
Read short type of data with DataInputStream
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; class Main {
public static void main(String args[]) throws Exception { FileInputStream fis = new FileInputStream(args[0]); DataInputStream dis = new DataInputStream(fis); // Read and display data System.out.print(dis.readShort() + " "); fis.close(); }
}
</source>
Read unsigned byte from file using DataInputStream
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { FileInputStream fin = new FileInputStream("C:/UnsignedByte.txt"); DataInputStream din = new DataInputStream(fin); int i = din.readUnsignedByte(); System.out.println("Unsinged byte value : " + i); din.close(); }
}
</source>
Use DataInputStream to create double
<source lang="java">
import java.io.DataInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] argv) throws Exception { FileInputStream fileIn = new FileInputStream("data.txt"); DataInputStream dataIn = new DataInputStream(fileIn); System.out.println(dataIn.readUTF()); int counter = dataIn.readInt(); double sum = 0.0; for (int i = 0; i < counter; i++) { double current = dataIn.readDouble(); System.out.println("Just read " + current); sum += current; } System.out.println("\nAverage = " + sum / counter); dataIn.close(); fileIn.close(); }
}
</source>