理解文件输入输出

时间:2016-10-09 12:37:33

标签: java file-io tokenize

嗨我有一些问题需要理解我的讲座材料,想到也许这里有人可以帮我理解它好一点

这是我在演讲中的例子

while

我也有解析csv文件的幻灯片

private void readFileExample (String inFilename){
    FileInputStream fileStrm = null;
    InputStreamReader rdr;
    BufferedReader bufRdr;
    int lineNum;
    String line;
    try {
        fileStrm = new FileInputStream(inFilename);
        rdr = new InputStreamReader(fileStrm);
        bufRdr = new BufferedReader(rdr);

        lineNum = 0;
        line = bufRdr.readLine();
        while (line != null) {
            lineNum++;
            processLine(line);
            line = bufRdr.readLine();
        }
        fileStrm.close();
    }
    catch (IOException e) {
        if (fileStrm != null) {
            try { fileStrm.close(); } catch (IOException ex2) { }
        }
        System.out.println("Error in file processing: " + e.getMessage());
    }
}

我想在readFileExample中使用processLine方法来分离csv文件是对的吗?

如果我的理解是正确的,我应该在某处输入文件名并将其调用到readFileExample但是我该怎么做呢,我可以使用

private void processLine(String csvRow) {
    String thisToken = null;
    StringTokenizer strTok;
    strTok = new StringTokenizer(csvRow, ",");

    while (strTok.hasMoreTokens()) {

        thisToken = strTok.nextToken();
        System.out.print(thisToken + " ");

    }
    System.out.println("");
}

如果它不是太多简单的例子就会很棒

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

输入文件名无关紧要。

它可以是这样的:字符串fileName = new String(“myFileName”);

或你的方式:

扫描仪sc =新扫描仪(system.in);

filename = sc.nextline();

然后在设置fileName后,将其传递给readFileExample:

readFileExample(filename); //无论您从何处获取名称,都将其传递。

和processLine函数一样,就像它的名字一样,用于解析每一行。如果要使用此程序实现某种文件分析。只需使用上面的结构。但你必须修改processLine函数。