Java Tutorial/File/BufferedInputStream
Содержание
- 1 BufferedInputStream
- 2 Buffered Stream Copier
- 3 Import a file of exported preference data.
- 4 Read File in String Using Java BufferedInputStream Example
- 5 Read File Using Java BufferedInputStream Example
- 6 Read from file with BufferedInputStream
- 7 Save keyboard input with BufferedInputStream
- 8 Use buffered streams to copy a file
BufferedInputStream
For faster reading you should use BufferedInputStream to wrap any InputStream. BufferedInputStream has two constructors that accept an InputStream:
<source lang="java">
public BufferedInputStream(InputStream in) public BufferedInput Stream (Input Stream in, int bufferSize)</source>
Then, instead of calling the methods on fis, work with the BufferedInputStream bis.
Buffered Stream Copier
<source lang="java">
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class MainClass {
public static void main(String[] args) { try { copy(System.in, System.out); } catch (IOException ex) { System.err.println(ex); } } public static void copy(InputStream in, OutputStream out) throws IOException { BufferedInputStream bin = new BufferedInputStream(in); BufferedOutputStream bout = new BufferedOutputStream(out); while (true) { int datum = bin.read(); if (datum == -1) break; bout.write(datum); } bout.flush(); }
}</source>
Import a file of exported preference data.
<source lang="java">
import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; import java.util.prefs.Preferences; public class Main {
public static void main(String[] argv) throws Exception { // Create an input stream on a file InputStream is = new BufferedInputStream(new FileInputStream("output.xml")); // Import preference data Preferences.importPreferences(is); }
}</source>
Read File in String Using Java BufferedInputStream Example
<source lang="java">
import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { File file = new File("C:/ReadFile.txt"); FileInputStream fin = new FileInputStream(file); BufferedInputStream bin = new BufferedInputStream(fin); byte[] contents = new byte[1024]; int bytesRead = 0; String strFileContents; while ((bytesRead = bin.read(contents)) != -1) { strFileContents = new String(contents, 0, bytesRead); System.out.print(strFileContents); } bin.close(); }
}</source>
Read File Using Java BufferedInputStream Example
<source lang="java">
import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { File file = new File("C:/ReadFile.txt"); FileInputStream fin = new FileInputStream(file); BufferedInputStream bin = new BufferedInputStream(fin); while (bin.available() > 0) { System.out.println((char) bin.read()); } bin.close(); }
}</source>
Read from file with BufferedInputStream
<source lang="java">
import java.io.BufferedInputStream; import java.io.FileInputStream; public class Main {
public static void main(String[] args) throws Exception { byte[] buffer = new byte[1024]; BufferedInputStream bufferedInput = new BufferedInputStream(new FileInputStream("filename.txt")); int bytesRead = 0; while ((bytesRead = bufferedInput.read(buffer)) != -1) { String chunk = new String(buffer, 0, bytesRead); System.out.print(chunk); } bufferedInput.close(); }
}</source>
Save keyboard input with BufferedInputStream
<source lang="java">
import java.io.BufferedInputStream; import java.io.IOException; public class ConsoleInput {
public static String readLine() { StringBuffer response = new StringBuffer(); try { BufferedInputStream buff = new BufferedInputStream(System.in); int in = 0; char inChar; do { in = buff.read(); inChar = (char) in; if ((in != -1) & (in != "\n") & (in != "\r")) { response.append(inChar); } } while ((in != -1) & (inChar != "\n") & (in != "\r")); buff.close(); return response.toString(); } catch (IOException e) { System.out.println("Exception: " + e.getMessage()); return null; } } public static void main(String[] arguments) { System.out.print("\nWhat is your name? "); String input = ConsoleInput.readLine(); System.out.println("\nHello, " + input); }
}</source>
Use buffered streams to copy a file
<source lang="java">
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; public class Main {
public static void main(String[] argv) throws Exception { BufferedInputStream fin = new BufferedInputStream(new FileInputStream("in.dat")); BufferedOutputStream fout = new BufferedOutputStream(new FileOutputStream("out.dat")); int i; do { i = fin.read(); if (i != -1) fout.write(i); } while (i != -1); fin.close(); fout.close(); }
}</source>