字节流java
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- public class Demo {
- public static void main(String[] args ) {
- String path = File.separator + "home" + File.separator + "siu" +
- File.separator + "work" + File.separator + "demo.txt";
- FileOutputStream o = null;
- try {
- o = new FileOutputStream(path);
- String str = "Nerxious is a good boy\r\n";
- byte[] buf = str.getBytes();
- //也能够直接使用o.write("String".getBytes());
- //由于字符串就是一个对象,能直接调用方法
- o.write(buf);
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if(o != null) {
- try {
- o.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- public class Demo {
- public static void main(String[] args ) {
- String path = File.separator + "home" + File.separator + "siu" +
- File.separator + "work" + File.separator + "demo.txt";
- FileInputStream i = null;
- try {
- i = new FileInputStream(path);
- //方式一:单个字符读取
- //须要注意的是,此处我用英文文本测试效果良好
- //但中文就悲剧了,不过下面两个方法效果良好
- int ch = 0;
- while((ch=i.read()) != -1){
- System.out.print((char)ch);
- }
- //方式二:数组循环读取
- /*
- byte[] buf = new byte[1024];
- int len = 0;
- while((len = i.read(buf)) != -1) {
- System.out.println(new String(buf,0,len));
- }
- */
- //方式三:标准大小的数组读取
- /*
- //定一个一个恰好大小的数组
- //available()方法返回文件的字节数
- //可是,若是文件过大,内存溢出,那就悲剧了
- //因此,亲们要慎用!!!上面那个方法就不错
- byte[] buf = new byte[i.available()];
- i.read(buf);
- //由于数组大小恰好,因此转换为字符串时无需在构造函数中设置起始点
- System.out.println(new String(buf));
- */
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if(i != null) {
- try {
- i.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- public class Demo {
- public static void main(String[] args ) {
- String bin = File.separator + "home" + File.separator + "siu" +
- File.separator + "work" + File.separator + "一我的生活.mp3";
- String copy = File.separator + "home" + File.separator + "siu" +
- File.separator + "life" + File.separator + "一我的生活.mp3";
- FileInputStream i = null;
- FileOutputStream o = null;
- try {
- i = new FileInputStream(bin);
- o = new FileOutputStream(copy);
- //循环的方式读入写出文件,从而完成复制
- byte[] buf = new byte[1024];
- int temp = 0;
- while((temp = i.read(buf)) != -1) {
- o.write(buf, 0, temp);
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if(i != null) {
- try {
- i.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- if(o != null) {
- try {
- o.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- public class Demo {
- public static void main(String[] args ) {
- String bin = File.separator + "home" + File.separator + "siu" +
- File.separator + "work" + File.separator + "一我的生活.mp3";
- String copy = File.separator + "home" + File.separator + "siu" +
- File.separator + "life" + File.separator + "一我的生活.mp3";
- FileInputStream i = null;
- FileOutputStream o = null;
- BufferedInputStream bi = null;
- BufferedOutputStream bo = null;
- try {
- i = new FileInputStream(bin);
- o = new FileOutputStream(copy);
- bi = new BufferedInputStream(i);
- bo = new BufferedOutputStream(o);
- byte[] buf = new byte[1024];
- int temp = 0;
- while((temp = bi.read(buf)) != -1) {
- bo.write(buf,0,temp);
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if(bi != null) {
- try {
- i.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- if(bo != null) {
- try {
- o.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }