Java Tutorial/File/FileOutputStream — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 08:19, 1 июня 2010
Содержание
- 1 Append output to file using FileOutputStream
- 2 Copy a file with FileInputStream and FileOutputStream
- 3 Create a file output stream directly from the file name
- 4 Create DataOutputStream from FileOutputStream
- 5 Create FileOutputStream object from File object
- 6 Create FileOutputStream object from String file path
- 7 File IO
- 8 FileOutputStream
- 9 Forcing Updates to a File to the Disk
- 10 Get FileChannel from FileOutputStream
- 11 serializes an object to an output stream.
- 12 Use FileOutputStream to read integers
- 13 Use FileOutputStream to write the bytes to a file.
- 14 Write byte array to a file using FileOutputStream
- 15 Write double to a file using DataOutputStream
- 16 Write file using FileOutputStream
- 17 Write UTF String, integer and double with DataOutputStream
Append output to file using FileOutputStream
<source lang="java">
import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("C:/demo.txt", true); fos.write("Appended".getBytes()); fos.close(); }
}</source>
Copy a file with FileInputStream and FileOutputStream
<source lang="java">
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; class CopyFile {
public static void main(String args[]) throws IOException { int i; FileInputStream fin; FileOutputStream fout; fin = new FileInputStream(args[0]); fout = new FileOutputStream(args[1]); do { i = fin.read(); if (i != -1) fout.write(i); } while (i != -1); fin.close(); fout.close(); }
}</source>
Create a file output stream directly from the file name
<source lang="java">
import java.io.FileNotFoundException; import java.io.FileOutputStream; public class MainClass {
public static void main(String[] a) { FileOutputStream outputFile = null; // Place to store the stream reference try { outputFile = new FileOutputStream("myFile.txt"); } catch (FileNotFoundException e) { e.printStackTrace(System.err); } }
}</source>
Create DataOutputStream from FileOutputStream
<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:/demo.txt"); DataOutputStream dos = new DataOutputStream(fos); }
}</source>
Create FileOutputStream object from File object
<source lang="java">
import java.io.File; import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { File file = new File("C:/demo.txt"); FileOutputStream fos = new FileOutputStream(file); }
}</source>
Create FileOutputStream object from String file path
<source lang="java">
import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("C:/demo.txt"); }
}</source>
File IO
<source lang="java">
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class FileIOApp {
public static void main(String args[]) throws IOException { FileOutputStream outStream = new FileOutputStream("test.txt"); String s = "This is a test."; for (int i = 0; i < s.length(); ++i) outStream.write(s.charAt(i)); outStream.close(); FileInputStream inStream = new FileInputStream("test.txt"); int inBytes = inStream.available(); System.out.println("inStream has " + inBytes + " available bytes"); byte inBuf[] = new byte[inBytes]; int bytesRead = inStream.read(inBuf, 0, inBytes); System.out.println(bytesRead + " bytes were read"); System.out.println("They are: " + new String(inBuf)); inStream.close(); File f = new File("test.txt"); f.delete(); }
}</source>
FileOutputStream
- The FileOutputStream class is a subclass of OutputStream.
- You can construct a FileOutputStream object by passing a string containing a path name or a File object.
- You can also specify whether you want to append the output to an existing file.
<source lang="java">
public FileOutputStream (String path) public FileOutputStream (String path, boolean append) public FileOutputStream (File file) public FileOutputStream (File file, boolean append)</source>
Forcing Updates to a File to the Disk
<source lang="java">
import java.io.FileDescriptor; import java.io.FileOutputStream; public class Main {
public static void main(String[] argv) throws Exception { FileOutputStream os = new FileOutputStream("outfilename"); FileDescriptor fd = os.getFD(); os.write(1); os.flush(); fd.sync(); }
}</source>
Get FileChannel from FileOutputStream
<source lang="java">
// Getting channels from streams import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; public class MainClass {
private static final int BSIZE = 1024; public static void main(String[] args) throws Exception { FileChannel fc = new FileOutputStream("data.txt").getChannel(); fc.write(ByteBuffer.wrap("Some text ".getBytes())); fc.close(); }
}</source>
serializes an object to an output stream.
<source lang="java">
/*
* Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream;
public class Main {
/** * This method serializes an object to an output stream. * * @param file The output file * @param object The object to be serialized * @exception IOException IOError */ public static void serializeObject(File file, Object object) throws IOException { FileOutputStream fos = new FileOutputStream(file); try { ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(fos)); oos.writeObject(object); oos.flush(); } finally { fos.close(); } }
}</source>
Use FileOutputStream to read integers
<source lang="java">
import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.IOException; public class MainClass {
public static void main(String args[]) throws IOException { int howMany = 20; // To avoid resizing the buffer, calculate the size of the // byte array in advance. ByteArrayOutputStream bout = new ByteArrayOutputStream(howMany * 4); DataOutputStream dout = new DataOutputStream(bout); for (int i = 0; i <= 20; i++) { dout.writeInt(i); } FileOutputStream fout = new FileOutputStream("fibonacci.dat"); try { bout.writeTo(fout); fout.flush(); } finally { fout.close(); } }
}</source>
Use FileOutputStream to write the bytes to a file.
<source lang="java">
import java.io.FileOutputStream; public class Main {
public static void main(String[] argv) throws Exception { byte[] vals = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 }; FileOutputStream fout = new FileOutputStream("Test.dat"); for (int i = 0; i < vals.length; i += 2) fout.write(vals[i]); fout.close(); }
}</source>
Write byte array to a file using FileOutputStream
<source lang="java">
import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { String strFilePath = "C://demo.txt"; FileOutputStream fos = new FileOutputStream(strFilePath); String strContent = "Write File using Java FileOutputStream example !"; fos.write(strContent.getBytes()); fos.close(); }
}</source>
Write double 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:/Double.txt"; FileOutputStream fos = new FileOutputStream(strFilePath); DataOutputStream dos = new DataOutputStream(fos); double d = 1; dos.writeDouble(d); dos.close(); }
}</source>
Write file using FileOutputStream
<source lang="java">
import java.io.FileOutputStream; public class Main {
public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("C:/demo.txt"); byte b = 01; fos.write(b); fos.close(); }
}</source>
Write UTF String, integer and double with DataOutputStream
<source lang="java">
import java.io.BufferedOutputStream; import java.io.DataOutputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] argv) throws Exception { FileOutputStream fileOut = new FileOutputStream("data.txt"); BufferedOutputStream buffer = new BufferedOutputStream(fileOut); DataOutputStream dataOut = new DataOutputStream(buffer); dataOut.writeUTF("Hello!"); dataOut.writeInt(4); dataOut.writeDouble(100.0); dataOut.close(); buffer.close(); fileOut.close(); }
}</source>