一次读一个数据
package io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class FileInputStreamdemo1 {
public static void main(String[] args) throws IOException {
//创建字节输入流对象 FileInputStream(String name)
FileInputStream fis=new FileInputStream("C:\\DW\\fos.txt");
//调用字节输入流对象的读取数据方法
//int read():从该输入流读取一个字节的数据
//第一次读取数据
// int b =fis.read();
// System.out.print(b);
// System.out.print((char)b);
// //第二次读取数据 如果读取达到文件末尾返回-1
// b =fis.read();
// System.out.print(b);
// System.out.print((char)b);
//多次读取
// int b=fis.read();
// while(b!=-1) {
// System.out.print((char)b);
// b=fis.read();
// }
//多次读取改进
int b;
while(( b=fis.read())!=-1) {
System.out.print((char)b);
}
//释放资源
fis.close();
}
}
一次读一个字节组数据
package io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Fileinputdemo2 {
public static void main(String[] args) throws IOException {
//创建字节流输入流对象
FileInputStream fis =new FileInputStream("C:\\DW\\fis.txt");
//调用字节输入流对象的读数据方法 int read(byte[] b):从该输入流读取最多b.length个字节的数据到一个字节数组
/* \r\n 换行符也读取
//第一次读取
byte[] bys =new byte[10];
int len=fis.read(bys);
System.out.println(len);
System.out.println(new String(bys));
//第二次读取
len=fis.read(bys);
System.out.println(len);
System.out.println(new String(bys)); //已经将所有数据读完
//第三次读取
len=fis.read(bys);
System.out.println(len); //已读取到末尾 输出-1
System.out.print(new String(bys)); //输出与第二次一样的结果
*/
//字节流读数据 (一次读一个字节组数据)
byte[] bys =new byte[1024]; //1024及其整数倍
int len;
while((len=fis.read(bys))!=-1) {
System.out.print(new String(bys,0,len));
}
//释放资源
fis.close();
}
}
关于追加写入和换行
package io;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 字节流写数据如何实现换行呢?
写完数据后,加换行符
windows:\r\n
linux:\n
mac:\r
字节流写数据如何实现追加写入呢?
public FileOutputStream(String name,boolean append)
创建文件输出流以指定的名称写入文件。
如果第二个参数为true,则字节将写入文件的末尾而不是开头
*/
public class Demo {
public static void main(String[] args) throws IOException {
FileOutputStream fos=new FileOutputStream("C:\\DW\\fos.txt", true); //追加写入
for(int i=0;i<10;i++) {
fos.write("hello,java".getBytes());
fos.write("\r\n".getBytes()); //windows:\r\n 换行
}
fos.close();
}
}