情况A:一次读完整个文件:(文件大的情况则不建议使用!)
FileInputStream fis = new FileInputStream(newFile("src/com/itany/coreJava/day17/a.txt"));
byte[] b = new byte[fis.available()];
fis.read(b);
System.out.println(new String(b)));
情况B:一次读一个数组长度的文件范例代码:(推荐!)
import java.io.File;
public class TestFileStream02
{
publicstaticint getI(int i)
{
System.out.println("i...."+i);
return -1;
}
public static void main(String[] args)
{
FileInputStream fis = null;
try
{
fis = new FileInputStream(new File("src/com/itany/coreJava/day17/a.txt"));
byte[] b = new byte[10];
int i = 0;
// 最后一次读 不一定能将数组 读满
// read() 返回的int值 是我读到的数据
// read(byte[] b) b是我读到的数据 返回的int值 读的长度
System.out.println("ava..."+fis.available());
while((i = fis.read(b)) !=getI(i))
{ //注意:变量i是真是读取到的字节个数!
//fis.available() 返回文件未读取部分的大小
System.out.println("ava..."+fis.available());
System.out.println(i);
System.out.println(Arrays.toString(b));
System.out.println(new String(b,0,i)));//每次读到多少字节就接受多少,防止接 收到多余的字节或者空白!
}
}
catch (Exception e)
{
e.printStackTrace();
}finally{
if(fis != null)
{
try
{
fis.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}
2:文件写入范例:
public class TestFileStream03
{
public static void main(String[] args)
{
FileOutputStream fos =null;
try
{
// 如果文件不存在 在new FileOutputStream的时候,文件会被创建
// 前提:对文件的父目录有写的权限
fos = new FileOutputStream("src/com/itany/coreJava/day17/b.txt");
String str = "HelloWorld";
fos.write(str.getBytes());
}
catch (Exception e)
{
e.printStackTrace();
}finally{
if(fos != null)
{
try
{
fos.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}