//构造方法
FileOutputStream?(File file) 创建文件输出流以写入由指定的 File对象表示的文件。
FileOutputStream?(String name) 创建文件输出流以指定的名称写入文件。
*参数
* file file:目的地是一个文件
* string name:目的地是一个文件路径
//当你创建一个流对象时,必须先传递一个文件路径,该路径下,如果没有这个文件,会创建该文件
//,如果有这个文件,会清空这个文件中的数据。然后把你想要的数据写入中。
FileOutputStream(File file,boolean append);创建文件出入流以写入由指定的File对象表示的文件中。
FileOutputStream(String name,boolean append);创建文件输出流以指定的名称写入文件中
//这两个构造方法,参数中都需要传入一个Boolean类型的值,
//true表示的追加数据,false表示覆盖原文件
public static void main(String[] args) throws IOException {
//FileOutputStream?(String name) 创建文件输出流以指定的名称写入文件。
FileOutputStream fops = new FileOutputStream("day28_IO\\a.txt");
//调用写入方法
fops.write(97);
//关闭流
fops.close();
}
//创建对象
File file = new File("day28_IO\\c.txt");
FileOutputStream fops = new FileOutputStream(file,true);
//调用write方法写入
fops.write("张三".getBytes());
//关闭流
fops.close();
windows系统里,换行符是: \r \n。把以指定是否需要追加续写换行。
linux系统中,换行符号是: /r /n.
mac系统中,换行符号是 :/r
unix系统里,每行结尾只有换行,即: \n
回车符\r和换行符\n
回车符:回到一行的开头。
换行符:下一行(new Line)。
系统中的换行:
windows系统中,每行结尾是:回车加换行。即,\r\n。
Linux系统中,每行的结尾只有换行,即,/n。
mac系统中,每行的结尾是回车,即,/r。
//构造方法
FileInputStream?(File file) 通过打开与实际文件的连接来创建一FileInputStream ,该文件由文件系统中的 File对象 file命名。
FileInputStream?(String name) 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name命名。
//当你创建一个流对象时,必须传入一个文件路径。该路径下,如果没有该文件,会抛出FileFoundException。
//普通方法
int available?() 返回从此输入流中可以读取(或跳过)的剩余字节数的估计值,而不会被下一次调用此输入流的方法阻塞。
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("C:\\c.txt");
int len = 0;
byte[] bytes = new byte[1024];
while ((len = fis.read(bytes)) != -1) {
//System.out.println(new String(bytes));
System.out.println(new String(bytes, 0, len));
}
fis.colos();
}
//可以使用字节数组来读取数据:read(byte[] b):从输入流中读取多个字节,并且将其存储到缓冲区数组b当中
备注;使用数组读取,每次可以读取多个字节,减少系统间的io操作次数,从而提高了读取的效率,建议使用。
练习从系统中读取一个图片复制到桌面上
//1.创建一个字节输入流对象,构造方法中绑定需要读取的路径
//2.创建一个字节输出流对象,构造方法中绑定需要写入的文件
//3.使用字节输入流对象中的read方法读取文件
//4.使用字节输出流对象中的write方法,把读取到字节写入到指定的文件中
//5.释放资源(先开的后关,后开的先关/相当于栈)
//复制文件
public static void main(String[] args) throws IOException {
//来源
File source = new File("D:\\aa.jpeg");
//目的地
File destination = new File("E:\\bb.jpeg");
try (FileInputStream fis = new FileInputStream(source);
FileOutputStream fos = new FileOutputStream(destination)
) {
System.out.println(fis.available() + "available");
//public int available?() throws IOException 获取文件字节
byte[] arr = new byte[fis.available()];
int a = 0;
while ((a = fis.read(arr)) != -1) {
fos.write(arr);
}
} catch (IOException e) {
e.printStackTrace();
}
}
原文:https://www.cnblogs.com/zk2020/p/15081045.html