如何使用 PrintStream 类读取和写入文件?

我只是想从一个文件中读取数据并将其写入另一个文件。但是每次我尝试使用ps.printf("%s", Filename);“ Filname ”打印数据时,它只会打印文件的实际名称而不是其中的数据。


例子:


输入文件名是visit.txt(由用户输入)


输出文件名是report.txt(由用户输入)


ps.printf("%s", Filename); 将单词“visit.txt”打印到report.txt而不是打印visit.txt中的数据


PrintStream 是从文件中读取数据的错误类吗?


import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.PrintStream;

import java.util.Scanner;


public class Veterinary {


public static void main(String[] args) throws FileNotFoundException {

    String Filename;

    String Outputfilename;


    Scanner inputScanner = null;


    System.out.printf("Enter Your Input File Name: ");

    inputScanner = new Scanner(System.in);

    Filename = inputScanner.nextLine();


    //CREATES FILE READER

    inputScanner = new Scanner(new FileReader(Filename));

    System.out.printf("\n", Filename);


    System.out.printf("Enter Your Output File Name: ");



    PrintStream ps = null;


    inputScanner = new Scanner(System.in);

    Outputfilename = inputScanner.nextLine();


    try

    {

        ps = new PrintStream(Outputfilename);

    }

    catch (Exception e)

    {

        System.out.println("ERROR. Could not open file!");

    }


    ps.printf("%s", Filename);

  }

}


慕容708150
浏览 505回答 3
3回答

千巷猫影

创建文件阅读器后,使用Scanner inputScannerfile = new Scanner(new FileReader(Filename));线而不是inputScanner = new Scanner(new FileReader(Filename));在最后一行ps.printf("%s", inputScannerfile.nextLine());您的代码的问题在于您扫描了输入文件,但没有读取该文件,并且在最后一行中(ps.printf("%s",filename))您将输入文件名传递给了.这就是为什么它为您提供输入文件名的原因。

婷婷同学_

注释该行Outputfilename = inputScanner.nextLine(); ,然后ps.printf("%s", Filename);用以下内容替换 该行while(inputScanner.hasNextLine()){     ps.println(inputScanner.nextLine());     }什么错误,你是doning是你写Filename的PrintStream的是你的文件名中的字符串值不it.since内容你已经打开了扫描仪输入文件,你需要从中读取每一行,并比其添加到输出文件的原流。以及我注释行的原因Outputfilename = inputScanner.nextLine();是因为它会从输入文件中读取第一行,然后转到下一行,但我们不会将其存储到打印流中,因此如果您不注释该行,则输入文件中的第一行将不会写入输出文件。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java