I/O文件流

   文件流:

      文件流读写是最常见的I/O操作,通过文件流来连接磁盘文件,从而读写文件内容。

  • 文件读写三个步骤:1. 打开文件输入或者输出流

                                           2. 文件读或写操作

                                           3. 关闭文件输入(出)流

                    通过文件系统中的File对象指定。

  • 标准的输入与输出:1. 标准输出:println() ; write() ;

                                           2. 标准输入:System.in ; 可以通过调用read()方法来实现从键盘读入数据的功能。

                                    由于输入比输出容易出问题,java强制设置了异常保护。

  • 标准输入的组合包装:通过引入InputStreamRreader和BufferedReader类的对象对其进行

                                               两次包装 (第一次System.in对象包装为reader对象的内嵌成员,第二次又将reader

                                               对象包装为input对象的成员) , 这样,就可以使用BufferedReader类提供的

                                               readLine()方法,实现以行为单位的字符串输入功能,当获取字符串数据后,

                                               还可以根据具体的数据类型进行相应转换。

package src;
import java.io.*;
public class Test1
{
public static void main(String[] args) throws IOException
{
String temp;
float f;
double d;
int i;
InputStreamReader reader=new InputStreamReader(System.in);//将System.in对象包装入InputStreamReader对象中
BufferedReader input=new BufferedReader(reader);//将reader对象包装入BufferedReader对象中
       //Scanner input=new Scanner(System.in);//Scanner类更简洁

System.out.println("请输入字符串数据:");
temp=input.readLine();  
System.out.println("刚输入的字符串为:"+temp);
System.out.println("请输入单精度浮点数:");
temp=input.readLine();
f = Float.parseFloat(temp); //字符串转换为单精度浮点型
System.out.println("刚输入的单精度浮点数为:"+f);
System.out.println("请输入双精度浮点数:");
temp=input.readLine();  
d = Double.parseDouble(temp); //字符串转换为双精度浮点型
System.out.println("刚输入的单精度浮点数为:"+d);
System.out.println("请输入int整型数:");
temp=input.readLine();  
i = Integer.parseInt(temp);  //字符串转换为int型
System.out.println("刚输入的int整型数为:"+i);
}
}
---------------------------
package IOinputStream;
import java.io.*;
public class Test2
{
//键盘写值,然后写进文件里面

   public static void main(String[] args)
  {
       try
      {
           InputStreamReader fin = new InputStreamReader(System.in);//将System.in对象包装入InputStreamReader对象中
           BufferedReader in = new BufferedReader(fin);   //将fin对象包装入BufferedReader对象中
            //Scanner in=new Scanner(System.in);//Scanner类更简洁
            FileWriter fout = new FileWriter("outdata.dat");
           BufferedWriter out = new BufferedWriter(fout);
           System.out.println("input:");
           String str = in.readLine();
           while(!(str.equals("#")))
          {
               out.write(str);
               out.newLine(); //写入一个行分隔符。
               str = in.readLine();
          }
           in.close();
           fin.close();
           out.close();
           fout.close();
      }
       catch(IOException e)
      {   e.printStackTrace(); }


  }

}
 
  • 文件目录:

    使用File类的构造方法创建File类的对象,因此File类对象可以表示一个磁盘文件,也可以表示某个目录。

                1. 相对路径:getPate();

                2. 绝对路径:getAbsoutepath();

                3. 父目录:getparent();

                4. 删除路径名抽象路径名表示的文件:renameTo();

package src;

import java.io.File;

public class Getfilepath
{

public static void main(String[] args)
{
File f=new File("mp3\\1.mp3");
System.out.println("相对路径:"+f.getPath());
System.out.println("绝对路径:"+f.getAbsolutePath());
System.out.println("父目录:"+f.getParent());
}

}
​----------------------
//复制
package src;
import java.io.*;
public class BigFileCopy
{
public static void main(String[] args) throws IOException
{
//BufferedInputStream类只是在FilterInputStream类(或者说InputStream类)的基础上添加了一个读取缓冲功能, //在读取大文件时速度很快
   FileInputStream fin=new FileInputStream("1.mp3");
BufferedInputStream in =new BufferedInputStream(fin);
FileOutputStream fout=new FileOutputStream("2.mp3");
BufferedOutputStream out=new BufferedOutputStream(fout);
int c;
while ((c=in.read())!=-1)
out.write(c);
System.out.print("Copy完成!");
in.close();
out.close();
}
}
​-------------------------------
package src;
//创建文件File 然后写入文件
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CreatFile
{

public static void main(String[] args) throws IOException
{
File f=new File("file.txt");
f.createNewFile();
FileWriter fout=new FileWriter(f);
String str="abcdefg";
fout.write(str);
fout.close();

}

}

posted @ 2022-07-29 22:03  zjw_rp  阅读(9)  评论(0编辑  收藏  举报