您的位置:首页 > 其它

字节流、字符流

2015-09-09 10:02 239 查看


字节流、字符流


1、字节流


输入流 IntputStream(通过子类实例化)

把文件的内容读取出来,并显示在console在。

package com.erquan.stream;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

public class InputStream {

public static void main(String[] args) throws IOException {

File file = new File("c:" + File.separator + "file.txt");

FileInputStream in = new FileInputStream(file);

//静态分配数组

//
byte buffer[] = new byte[1024];

//
int len = in.read(buffer); //指定文件的内容读取到流中,返回数组的长度

//动态fen配数组的大小

byte buffer[] = new byte[(int) file.length()];

for (int i = 0; i < buffer.length; i++) {

buffer[i] = (byte) in.read(); //一个个读入

}

//new String(buffer)不能去除多余的空格

//System.out.println(new String(buffer, 0, len)); //转成字符输出

System.out.println(new String(buffer));

in.close(); //一定要记得关闭

}

}


输出流 OutputStream(通过子类实例化)

把程序里要保存的东西写入到指定的文件中

package com.erquan.stream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

public class OutputStream {

public static void main(String[] args) throws IOException {

File file = new File("c:" + File.separator + "file.txt");

if (!file.exists()) {

//System.out.println("文件不存在");

try {

file.createNewFile();

} catch (IOException e) {

e.printStackTrace();

}

//新建字节流

//FileOutputStream out = new FileOutputStream(file);

//在现有的文件尾部追加写入,不会覆盖原有的内容

FileOutputStream out = new FileOutputStream(file, true);

String context = "hello world!!!! \r\n"; //要写入的信息 \r\n 表示换行

byte buffer[] = context.getBytes(); //内容存入数组

//这两种方法都会覆盖前一次的内容 FileOutputStream(file, true) 不会

//out.write(buffer); //向文件写入数据方法 一 一次全部写入

//写入的方式 二 个个字符写入

//
for (int i = 0; i < buffer.length; i++) {

//
out.write(buffer[i]);

//
}

out.close(); //关闭流

} else {

System.out.println("文件存在!!");

}

}

}


2、字符流


输入流 Writer

把程序里要保存的东西写入到指定的文件中

package com.erquan.charstream;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

public class WriterStream {

public static void main(String[] args) {

//加载文件

File file = new File("c:" + File.separator + "file.txt");

//在现有的文件尾部追加写入,不会覆盖原有的内容

try {

FileWriter fileWrite = new FileWriter(file, true);

//char buffer[] = context.getBytes(); //内容存入数组

String context = "hello world!!!! \r\n"; //要写入的信息 \r\n 表示换行

fileWrite.write(context); //向文件写入数据方法 一

System.out.println("写入文件成功!!");

fileWrite.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}


输出流 Reader

把文件的内容读取出来,并显示在console在。

package com.erquan.charstream;

import java.io.File;

import java.io.FileReader;

import java.io.IOException;

public class ReaderStream {

public static void main(String[] args) throws IOException {

File file = new File("c:" + File.separator + "file.txt");

FileReader fileReader = new FileReader(file);

char buffer[] = new char[1024];

int len = fileReader.read(buffer);

//转成字符串后输出

System.out.println(new String(buffer, 0, len));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: