package io; import java.io.*; public class FileCopy { public static void main(String[] args) { int b = 0; FileReader in = null; FileWriter out = null; try { in = new FileReader("d:/share/java/HelloWorld.java"); out = new FileWriter("d:/share/java/io/HW.java"); while((b=in.read())!=-1){ out.write(b); } out.close(); in.close(); } catch (FileNotFoundException e2) { System.out.println("找不到指定文件"); System.exit(-1); } catch (IOException e1) { System.out.println("文件读写错误"); System.exit(-1); } System.out.println("文件复制完成"); } }
//ByteArrayOutputStream and ByteArrayInputStream belongs to node stream(节点流) //两者通过字节数组来实现数据的传输,例如new ByteArrayInputStream(baos.toByteArray())
//ByteArrayInputStream以内存中的一个缓冲区作为InputStream使用 //JDK1.6源码中数据存储在protected byte buf[] //该程序动作皆在内存中进行,不用flush() package io; import java.io.*; public class TestDataStream { public static void main(String[] args) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(baos); try { dos.writeDouble(Math.random()); dos.writeBoolean(true); ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); System.out.println(bais.available()); //Returns the number of remaining bytes that //can be read (or skipped over) from this input stream. DataInputStream dis = new DataInputStream(bais); System.out.println(dis.readDouble()); System.out.println(dis.readBoolean()); dos.close(); dis.close(); } catch (IOException e) { e.printStackTrace(); } } }
package io; import java.io.*; public class TestBufferStream1 { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("F:\\111213zidian.sql"); BufferedInputStream bis = new BufferedInputStream(fis); int c = 0; System.out.println(bis.read()); System.out.println(bis.read()); System.out.println(bis.markSupported()); bis.mark(10);//?没有效果 for(int i=0;i<=100&& (c=bis.read())!=-1;i++){ System.out.print((char)c+" "); } System.out.println(); bis.reset(); for(int i=0;i<=100 && (c=bis.read())!=-1;i++){ System.out.print((char)c+" "); } bis.close(); } catch (IOException e) {e.printStackTrace();} } }
package io; import java.io.*; public class TestBufferStream2 { public static void main(String[] args) { try { BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\share\\java\\dat2.txt")); BufferedReader br = new BufferedReader( new FileReader("d:\\share\\java\\dat2.txt")); String s = null; for(int i=1;i<=100;i++){ s = String.valueOf(Math.random()); bw.write(s); bw.newLine(); } bw.flush(); while((s=br.readLine())!=null){ System.out.println(s); } bw.close(); br.close(); } catch (IOException e) { e.printStackTrace();} } }
package io; import java.io.*; public class TestFileInputStream { public static void main(String[] args) { int b = 0; FileInputStream in = null; try { in = new FileInputStream("f:\\java学习路线.txt"); } catch (FileNotFoundException e) { System.out.println("文件未找到!"); System.exit(-1); } try { long num = 0; while((b=in.read())!=-1){ System.out.print((char)b); num++; } in.close(); System.out.println(); System.out.println("有"+num+"字节"); } catch (IOException e1) { System.out.println("读文件错误"); System.exit(-1); } } }
import java.io.*; public class TestFileOutputStream { public static void main(String[] args) { int b = 0; FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("d:/share/java/HelloWorld.java"); out = new FileOutputStream("d:/share/java/io/HW.java"); while((b=in.read())!=-1){ out.write(b); } in.close(); out.close(); } catch (FileNotFoundException e2) { System.out.println("文件未找到"); System.exit(-1); } catch (IOException e1) { System.out.println("读写错误"); System.exit(-1); } System.out.println(" "); } }
package io; import java.io.*; public class TestFileReader { public static void main(String[] args) { FileReader fr = null; int c = 0; try { fr = new FileReader("f:\\java学习路线.txt"); int ln = 0; while ((c = fr.read()) != -1) { //char ch = (char) fr.read(); System.out.print((char)c);//FileReader为节点 字符流 //if (++ln >= 100) { System.out.println(); ln = 0;} } fr.close(); } catch (FileNotFoundException e) { System.out.println("文件未找到!"); } catch (IOException e) { System.out.println("读写错误!"); } } }//FileWriter out = new FileWriter("output.txt");
//相当于FileWriter out = new FileWriter(new FileOutputStream("output.txt"));
package io; import java.io.*; public class TestFileWriter { public static void main(String[] args) { FileWriter fw = null; try { fw = new FileWriter("f:\\unicode.dat"); for(int c=0;c<=50000;c++){ fw.write(c); } fw.close(); } catch (IOException e1) { e1.printStackTrace(); System.out.println("写文件错误"); System.exit(-1); } } }
package io; import java.io.*; public class TestFileWriter2 { public static void main(String[] args) throws Exception { FileReader fr = new FileReader("d:/java/io/TestFileWriter2.java"); FileWriter fw = new FileWriter("d:/java/io/TestFileWriter2.bak"); int b; while((b = fr.read()) != -1) { fw.write(b); } fr.close(); fw.close(); } }
package io; import java.io.*; public class TestObjectIO { public static void main(String args[]) throws Exception { T t = new T(); t.k = 8; FileOutputStream fos = new FileOutputStream("f:/testobjectio.dat"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(t); oos.flush(); oos.close(); FileInputStream fis = new FileInputStream("f:/testobjectio.dat"); ObjectInputStream ois = new ObjectInputStream(fis); T tReaded = (T)ois.readObject(); System.out.println(tReaded.i + ", " + tReaded.j + ", " + tReaded.d + ", " + tReaded.k); } } class T implements Serializable { int i = 10; int j = 9; double d = 2.3; transient int k = 15;//如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。 }10, 9, 2.3, 0
package io; import java.io.*; public class TestPrintStream1 { public static void main(String[] args) { PrintStream ps = null; try { FileOutputStream fos = new FileOutputStream("f:\\log.dat"); ps = new PrintStream(fos); } catch (IOException e) { e.printStackTrace(); } if(ps != null){ System.setOut(ps);//Reassigns the "standard" output stream. } int ln = 0; for(char c = 0; c <= 60000; c++){ System.out.print(c+ " "); if(ln++ >=100){ System.out.println(); ln = 0;}//默认是控制台输出,现在为输出到文件 } } }
package io; import java.io.*; public class TestPrintStream2 { public static void main(String[] args) { String filename = "f:\\logfile.log"; if(filename!=null){list(filename,System.out);} } public static void list(String f,PrintStream fs){ try { BufferedReader br = new BufferedReader(new FileReader(f)); String s = null; while((s=br.readLine())!=null){ fs.println(s); } br.close(); } catch (IOException e) { fs.println(" "); } } }
package io; import java.util.*; import java.io.*; public class TestPrintStream3 { public static void main(String[] args) { String s = null; BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); try { FileWriter fw = new FileWriter ("f:\\logfile.log", true); PrintWriter log = new PrintWriter(fw); while ((s = br.readLine())!=null) { if(s.equalsIgnoreCase("exit")) break; System.out.println(s.toUpperCase()); log.println("-----"); log.println(s.toUpperCase()); log.flush(); } log.println("==="+new Date()+"==="); log.flush(); log.close(); } catch (IOException e) { e.printStackTrace(); } } }
package io; import java.io.*; public class TestTransForm2 { public static void main(String args[]) { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s = null; try { s = br.readLine();//阻塞式 while(s!=null){ if(s.equalsIgnoreCase("exit")) break; System.out.println(s.toUpperCase()); s = br.readLine(); } br.close(); } catch (IOException e) { e.printStackTrace(); } } }
package io; import java.io.*; public class TestTransForm1 { public static void main(String[] args) { try { OutputStreamWriter osw = new OutputStreamWriter( new FileOutputStream("f:\\char.txt")); osw.write("mircosoftibmsunapplehp"); System.out.println(osw.getEncoding());//GBK osw.close(); osw = new OutputStreamWriter(new FileOutputStream("f:\\char.txt", true), "ISO8859_1"); // latin-1 osw.write("mircosoftibmsunapplehp"); System.out.println(osw.getEncoding()); osw.close(); } catch (IOException e) { e.printStackTrace(); } } }