欢迎访问宙启技术站
智能推送

Java中文件输入输出函数的使用方法

发布时间:2023-06-18 08:49:46

Java中,文件输入输出是很常用的操作。Java提供了各种不同的文件输入输出函数,可以读取和写入文件,从而实现对文件的操作。下面我们来详细介绍一下Java中文件输入输出函数的使用方法。

1. 文件输入

Java中文件输入的函数主要有以下三个:

1.1 FileInputStream

FileInputStream是Java中一个用于读取文件的类,它继承自InputStream类。FileInputStream对象从磁盘读取文件的数据,并将它们写入到内存中。该类的构造函数如下:

FileInputStream(String name)

FileInputStream(File file)

其中,name为文件名,file为文件对象。

下面是一个使用FileInputStream进行文件输入的示例代码:

try{
    FileInputStream fis=new FileInputStream("test.txt");
    byte[] b=new byte[1024];
    int len;
    while((len=fis.read(b))!=-1){
        System.out.print(new String(b,0,len));
    }
} catch (IOException e) {
    e.printStackTrace();
}

代码中,我们使用了FileInputStream用于读取名为test.txt的文件。使用byte数组b来缓冲读取的数据,每次读取时,返回值len为实际读取的字节数。将读取的数据用字符串的形式输出,从而实现文件的输入功能。

1.2 BufferedInputStream

BufferedInputStream是Java中提供的一个带缓冲的输入流,在读取文件时可以提高文件读取的效率。使用BufferedInputStream时,可以使用read()方法仅读取一个字节,也可以使用read(byte[] b)方法将数据读取到缓冲区中。该类的构造函数如下:

BufferedInputStream(InputStream in)

其中,in为FileInputStream对象等输入流对象。

下面是一个使用BufferedInputStream进行文件输入的示例代码:

try{
    FileInputStream fis=new FileInputStream("test.txt");
    BufferedInputStream bis=new BufferedInputStream(fis);
    byte[] b=new byte[1024];
    int len;
    while((len=bis.read(b))!=-1){
        System.out.print(new String(b,0,len));
    }
} catch (IOException e) {
    e.printStackTrace();
}

代码中,我们先使用FileInputStream对象fis来创建一个BufferedInputStream对象bis。然后使用read()方法读取每个字节,并将读取的数据用字符串输出。这样就完成了从文件中读取数据的操作。

1.3 Scanner

Scanner是一个在Java中用于读取文本输入的类。它可以用来读取int、double等基本类型数据,也可以读取字符串。Scanner提供了很多可用方法,具体的可以看下面的代码示例。

下面是一个使用Scanner进行文件输入的示例代码:

try{
    Scanner sc=new Scanner(new File("test.txt"));
    while(sc.hasNextLine()){
        System.out.println(sc.nextLine());
    }
} catch (IOException e) {
    e.printStackTrace();
}

代码中,我们首先创建一个Scanner对象sc,通过将文件test.txt传递给Scanner构造函数来实现文件输入。使用nextLine()方法读取每行数据,并输出到控制台上。

2. 文件输出

Java中文件输出的函数主要有以下两个:

2.1 FileOutputStream

FileOutputStream是一个Java中用于写入文件的类,它继承自OutputStream类。FileOutputStream对象可以将数据写入到文件中,从而实现文件的输出。该类的构造函数如下:

FileOutputStream(String name)

FileOutputStream(File file)

其中,name为文件名,file为文件对象。

以下是一个使用FileOutputStream进行文件输出的示例代码:

try{
    FileOutputStream fos=new FileOutputStream("test.txt");
    String s="Hello, World!";
    byte[] b=s.getBytes();
    fos.write(b);
} catch (IOException e) {
    e.printStackTrace();
}

代码中,我们首先创建一个FileOutputStream对象fos,使用write(byte[] b)方法将字符串写入文件中,完成文件输出的操作。

2.2 PrintWriter

PrintWriter是Java中一个用于输出文本的类,可以向文件中写入格式化数据。PrintWriter提供了各种不同的print()和println()方法,可以输出各种不同的数据。该类的构造函数如下:

PrintWriter(File file)

PrintWriter(OutputStream out)

其中,file为文件对象,out为输出流对象。

以下是一个使用PrintWriter进行文件输出的示例代码:

try{
    PrintWriter pw=new PrintWriter(new File("test.txt"));
    String s="Hello, World!";
    pw.write(s);
    pw.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

代码中,我们首先创建一个PrintWriter对象pw,将文件test.txt传递给它的构造函数。使用write()方法将字符串写入文件中,并使用close()方法关闭文件,从而完成文件输出的操作。

总结:Java中提供了多种方法实现文件输入输出的功能,开发者可以根据需要选择适合的方法。FileInputStream和FileOutputStream是最基本的两种方式,它们可以用来读取和写入字节,但是在读取大文件时,效率可能不是很高。使用BufferedInputStream和PrintWriter可以带来更好的效率和灵活性。使用Scanner则可以更加方便的读取行数据。需要注意的是,所有文件操作都需要进行异常处理,以确保程序的正确性。