io包
默认:源文件字符—》程序十进制
read()方法:一次只能读取一个字节,当读取到文件末尾,返回值为-1
close()方法:关闭流释放资源–》Java程序占用的系统资源被释放
注意:Windows平台使用\作为路径分隔符,在Java字符串中需要用\表示一个\。Linux平台使用/作为路径分隔符
//1.创建字节输入流对象 FileInputStream fis = new FileInputStream("D:\\abc.txt"); //2.读取文件中的数据 int f = fis.read(); //一次只能读取一个字节,当读取到文件末尾,返回值为-1,鼠标点击read()方法,查看返回数据类型, //输出的是字符对应的十进制数,参考ASCII码,转换为字符类型,需要强制转换 System.out.println((char)f);
while循环输出文件所有内容
int f; //不确定循环次数,使用while //在循环中不断地调用read方法,并把读取到的数据给f复制,只要没有读取到-1,说明没有达到文件末尾 while((f = fis.read()) != -1) { System.out.println((char)f); } fis.close();//关闭流释放资源
说明:在程序还在执行的状态下,若不关闭流,Java占用的系统文件(如abc.txt),将不能被操作(删除、重命名等)
默认:程序十进制—》写出字符
特点:
//1.创建字节输出对象,写到write.txt文件中,若不存在指定文件,将自动创建 FileOutputStream fos = new FileOutputStream("D:\\write.txt"); //2.写出数据 fos.write(97); //3.关闭流释放资源 fos.close();
文件中写入的是a
2.2当我们不知道字符对应的字节数时,采用getBytes()方法
byte[] bytes = "hello".getBytes(); //输出字符对应的所有字节 System.out.println(Arrays.toString(bytes)); //将字符写到文件中 fos.write(bytes);
Java程序输出[104, 101, 108, 108, 111]
文件中是hello
追加不覆盖原本内容
FileOutputStream fos = new FileOutputStream("D:\\write.txt",true);