


public class 字节流 {public static void main(String[] args) throws IOException {/*写一段文本到文件中,暂时不写中文创建对象细节:1、是字符串表示的路径,或者是File对象都是可以的2、如果文件不存在不会创建一个新的文件,但是要保证父级路径是存在的3、如果文件已经存在,会清空文件写出数据细节:1、write()方法的参数是整数,但是对应写到本地文件上的实际是ASCII码上对应的字符(0-127)释放资源每次使用完流后都应释放资源流相当于在内存和程序之间建立了一条通道,当我们传递完数据需要砸掉这条通道*/FileOutputStream fos=new FileOutputStream("/Users/XXX/IdeaProjects/basecode/day02/aaaa/a.txt");fos.write(97);fos.close();}
}
细节:
1、是字符串表示的路径,或者是File对象都是可以的
2、如果文件不存在不会创建一个新的文件,但是要保证父级路径是存在的
3、如果文件已经存在,会清空文件
细节:
1、write()方法的参数是整数,但是对应写到本地文件上的实际是ASCII码上对应的字符(0-127)
每次使用完流后都应释放资源
流相当于在内存和程序之间建立了一条通道,当我们传递完数据需要砸掉这条通道

public class 字节流Input2 {public static void main(String[] args) throws IOException {/*write() 一次写一个字节数据write(byte[] b) 一次写一个字节数组数据write(byte[] b,int off,int len) 一次创建一个字节数组的部分数据*///1、创建对象FileOutputStream fos=new FileOutputStream("/Users/XXX/IdeaProjects/basecode/day02/aaaa/a.txt");byte[] bytes={97,98,99,100};//参数一:从数组的哪个索引开始//参数二:录入几个数据fos.write(bytes,0,2);fos.close();}
}

在想要换行的位置写出一个换行符就可以了
windows:\r\n
Mac:\r
linux:\n
细节:
在windows系统中,java对回车换行做出了优化,虽然完整的是\r\n。
但是只要写其一,java就可以实现换行,因为代码会在底层自动补齐
public class 字节流Output换行和续写 {public static void main(String[] args) throws IOException {/*换行写:再次写出一个换行符就可以了windows:\r\nMac:\rlinux:\n细节:在windows系统中,java对回车换行做出了优化,虽然完整的是\r\n。但是只要写其一,java就可以实现换行,因为代码会在底层自动补齐*///1、创建路径FileOutputStream fos=new FileOutputStream("/Users/XXX/IdeaProjects/basecode/day02/aaaa/a.txt");//2、写出数据String str="nihaonichifanlema";byte[] bytes=str.getBytes();//通过该方法将字符串转化做字节(整数)再放到一个数组中fos.write(bytes);//创建换行符String wrap="\r";byte[] bytes1=wrap.getBytes();fos.write(bytes1);//3、创建第二个数据String str2="666";byte[] bytes2=str2.getBytes();fos.write(bytes2);fos.close();}
}
想要续写,打开续写开关即可。
创建对象的第二个参数
默认false:表示关闭续写,此时创建对象会清空文件
手动传递true:表示开启续写,此时创建对象不会清空文件
//1、创建路径
FileOutputStream fos=new FileOutputStream("/Users/XXX/IdeaProjects/basecode/day02/aaaa/a.txt",true);
细节:如果文件对象不存在,直接报错
细节1:一次读一个字节,读出来的数字是ASCII码表上对应的数字
细节2:读到文件末尾,read方法返回-1
细节:每次使用流之后都要释放资源
public class 字节流Input1 {public static void main(String[] args) throws IOException {/*目的:读取文件中的数据创建对象细节:如果文件对象不存在,直接报错读取数据细节1:一次读一个字节,读出来的数字是ASCII码表上对应的数字细节2:读到文件末尾,read方法返回-1释放资源:细节:每次使用流之后都要释放资源*///1、创建对象FileInputStream fis=new FileInputStream("/Users/XXX/IdeaProjects/basecode/day02/aaaa/a.txt");//2、读取数据int read = fis.read();System.out.println(read);//3、释放资源fis.close();}
}
当读取到文件末尾时,会返回-1,借此进行判断
public class 字节流Input循环读取 {public static void main(String[] args) throws IOException {//1、创建对象FileInputStream fis=new FileInputStream("/Users/XXX/IdeaProjects/basecode/day02/aaaa/a.txt");//2、循环读取/*read表示读取数据,并且每读取一个数据就移动一次指针*/int b;while ((b=fis.read())!=-1){System.out.print((char) b);}//3、释放资源fis.close();}
}
上一篇:【C语言】通讯录
下一篇:大厂JAVA项目规范范文