Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将用户输入文本复制到输出文本文件(java)_Java_File_Oop_Object_Io - Fatal编程技术网

将用户输入文本复制到输出文本文件(java)

将用户输入文本复制到输出文本文件(java),java,file,oop,object,io,Java,File,Oop,Object,Io,这是我的java类的一个助手。我必须创建用户输入并将其放入输入文件(InputFile.txt),然后通过输出文件(OutPutFile.txt)提交此文本。问题和示例文本如下: 编写一个程序,打开一个文本文件(InputFile.txt)并读取输入。该文件包含如下所示的字符串行: import java.util.Scanner; import java.io.*; public class Main { public static void main(String[] args)

这是我的java类的一个助手。我必须创建用户输入并将其放入输入文件(InputFile.txt),然后通过输出文件(OutPutFile.txt)提交此文本。问题和示例文本如下:

编写一个程序,打开一个文本文件(InputFile.txt)并读取输入。该文件包含如下所示的字符串行:

import java.util.Scanner;
import java.io.*;

public class Main 
{
    public static void main(String[] args) throws IOException 
    {
        File inputFile = new File("InputFile.txt");
        File outputFile = new File("OutputFile.txt");
        Scanner inFS = new Scanner(inputFile);
        PrintWriter outFS = new PrintWriter(outputFile);

        String line;
        while (inFS.hasNextLine()) 
        {   
            // Read in the line and convert it to upper case
            line = inFS.nextLine().toUpperCase();

            // Print the result to the console
            System.out.println(line);

            // Write the read in line to the output file with a new line character
            outFS.print(line + "\n");
        }

        // Close any resources used
        outFS.close();
        inFS.close();
    }
}
这是一号线

这是第二行

这是第三行

这是四号线

将输入字符串更改为大写(“这是第一行”),将大写行写入OutputFile.txt。确保读取输入文件中的所有行

我几乎把所有的东西都记下来了,除了把文本放到输出中,然后它就出现了。下面是我的代码以及我不断得到的结果。我知道我在什么地方搞砸了,我只是不知道在哪里

任何帮助/建议都会大有帮助。谢谢

import java.util.Scanner;
import java.util.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        FileInputStream fileByteStream = null;
        Scaner inFS = null;
        String InputFile;

        fileByteStream = new FileInputStream("InputFile.txt");
        inFS = new Scanner(fileByteStream);

        while (inFS.hasNextLine()) {
            System.out.println(inFS.nextLine());
        }
        fileByteStream.close();

        FileOutputStream fileStream = new FileOutputStream("OutputFile.txt");
        PrintWriter outFS = new PrintWriter(fileStream);

        outFS.print(inFS);
        outFS.close();
    }
}

结果:
java.util.Scanner[delimiters=\p{javaWhitespace}+][position=77][match valid=false][need input=false][source closed=true][skipped=false][group separator=\,][decimal separator=\.][positive prefix=\Q-\E][positive suffix=][负后缀=][NaN NaN string=\QNaN E][infinity string=\Q∞\E] 

好的,首先,Java中没有名为“Java.util.io”的库。你可能正在寻找的是

代码中的另一个问题是,您拼错了扫描仪对象名称,不确定这是否是在您发布问题时偶然发生的,但正确的语法是:

Scanner inFS = null;
关于您为什么会收到:

Scanner[delimiters=\p{javaWhitespace}+][position=77][match valid=false][need input=false][source closed=true][skipped=false][group separator=\,][decimal 分隔符=.][正前缀=][负前缀=\Q-\E][正 后缀=][负后缀=][NaN字符串=\QNaN\E][无限字符串=\Q∞\[英]

这是因为您正在将扫描仪对象传递给PrintWriter。实际上,您并没有打印扫描仪读入的行,而是打印扫描仪从其toString()方法返回的字符串内容

无论如何,为了将文本放入输出,需要一个指向输出文件的File对象和一个指向输出文件的File对象的PrintWriter。使其工作的总体思路是让PrintWriter对象在程序通过扫描仪读取InputFile.txt中的行时写入OutputFile.txt。因此,您的代码应该如下所示:

import java.util.Scanner;
import java.io.*;

public class Main 
{
    public static void main(String[] args) throws IOException 
    {
        File inputFile = new File("InputFile.txt");
        File outputFile = new File("OutputFile.txt");
        Scanner inFS = new Scanner(inputFile);
        PrintWriter outFS = new PrintWriter(outputFile);

        String line;
        while (inFS.hasNextLine()) 
        {   
            // Read in the line and convert it to upper case
            line = inFS.nextLine().toUpperCase();

            // Print the result to the console
            System.out.println(line);

            // Write the read in line to the output file with a new line character
            outFS.print(line + "\n");
        }

        // Close any resources used
        outFS.close();
        inFS.close();
    }
}

您的代码不应编译。您的扫描仪不正确,并且大多数类不属于java.util.io包对此表示担忧。我已经做了几个小时这个问题,我甚至没有意识到我所有的错误。我把这件事搞砸了。谢谢你的澄清。我不喜欢这本书。指示不太清楚。我花了一天半的时间解析Java文档。谢谢Darian。我真的应该检查一下我的语法。你对我的解释非常正确,而且很容易让我理解。除了我的代码很难看之外,我还看到了你在说什么。我至少在正确的轨道上还是完全偏离了?你实际上在正确的轨道上。尽管有一点拼写错误/库名错误,但您仍然清楚地知道要实现这一点需要哪些库/对象。从技术上讲,您可以使用FileInputStream/FileOutputSteam来代替文件,但是,这些输入/输出流更多地用于写入/读取原始字节流,例如图像数据。