在Java中打印单个文件行的字符

时间:2016-11-24 03:01:17

标签: java

我正在尝试从文件中的每一行打印第4和第5个字符。

这是关于在线测试的问题。这是我无法及时弄清楚的那个。我只是出于学习目的而这样做。

无论如何,我正在尝试遍历这些行并打印这些字符。显然我做错了什么!

该文件包含:

1001XXXXYYYYZZZZ
2002AAAABBBBCCCC
3003LLLLMMMMNNNN
4004SSSSTTTTUUUU
输出应该是:

1X
2A
3L
4S

这是我的代码

import java.io.PrintWriter;
import java.util.Scanner;
import java.io.FileNotFoundException;
public class Quiz9 {
    public static void main (String [] args) throws FileNotFoundException{
        Scanner in = new Scanner("/Users/abc/input.txt");
        PrintWriter out = new PrintWriter("/Users/abc/output.txt");
        String a;
        while (in.hasNextLine()) {
            for(int i=0;i<4;i++) {
                a = in.next();
                char b = a.charAt(5);
                char c = a.charAt(6);
                out.println(b +""+ c +"hello");
            }
        }
        in.close();
        out.close();
    }
}

我已经得到它来产生一些输出,但它只是说“\ s”甚至没有在列表中!我不知道我哪里出错了。

2 个答案:

答案 0 :(得分:3)

您正在扫描文件名,而不是文件内容。使用例如扫描仪(新文件(...))代替。

答案 1 :(得分:1)

您需要使用Scanner(File source)而不是文件名。 您收到\s,因为文件名的第5个和第6个字符是s\

试试这个......

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Quiz9 {
    public static void main(String[] args) throws FileNotFoundException {
        Scanner in = new Scanner(new File("/Users/abc/input.txt"));
        PrintWriter out = new PrintWriter("/Users/abc/output.txt");
        String a;
        while (in.hasNextLine()) {
            a = in.nextLine();
            char b = a.charAt(3);
            char c = a.charAt(4);
            out.write(b + "" + c + "\n");
        }
        in.close();
        out.close();
    }
}