通过文本文件修改字符串输入中的输出(Java)

时间:2014-02-24 23:44:36

标签: java string text

感谢所有人提前。

我通过文本文件输入字符串行,并希望将输出修改为删除每个字符串的最后两个字母。这是文本文件当前读取的内容:

  你好,你好吗?   酷
  我很棒

这是我正在使用的代码(来自Java-tips.org)

package MyProject

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * This program reads a text file line by line and print to the console. It uses
 * FileOutputStream to read the file.
 * 
 */

public class FileInput {

  public static void main(String[] args) {

File file = new File("MyFile.txt");
FileInputStream fis = null;
BufferedInputStream bis = null;
DataInputStream dis = null;

try {
  fis = new FileInputStream(file);

  // Here BufferedInputStream is added for fast reading.
  bis = new BufferedInputStream(fis);
  dis = new DataInputStream(bis);

  // dis.available() returns 0 if the file does not have more lines.
  while (dis.available() != 0) {

  // this statement reads the line from the file and print it to
    // the console.
    System.out.println(dis.readLine());
  }

  // dispose all the resources after using them.
  fis.close();
  bis.close();
  dis.close();

} catch (FileNotFoundException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
}
  }

}

代码完美无缺,但我想修改输出以删除每个字符串的最后两个字母(字符串=每行一个)谢谢大家!

1 个答案:

答案 0 :(得分:1)

这是我的建议。不要将流用于非常简单和非负载密集的事情。坚持基础知识,使用Scanner并逐行阅读您的文件。

这是成功的方法!

  1. 了解如何使用Scanner逐行阅读文本文件中的Strings

  2. 请务必相应地使用Strings方法拆分str.split()

  3. 将每行String值存储到数组/列表/表格中。

  4. 修改已存储的Strings以删除最后两个字母。查看str.subString(s,f)方法。

  5. 了解如何使用PrintWriter将修改后的Strings输出到文件中。

  6. 祝你好运!

    评论回复
    从texfile中读取一行String

    File file = new File("fileName.txt");
    Scanner input = new Scanner(file);
    while (input.hasNextLine()) {
       String line = input.nextLine(); //<------This is a String representation of a line 
       System.out.println(line); //prints line
       //Do your splitting here of lines containing more than 1 word
       //Store your Strings here accordingly
       //----> Go on to nextLine
    }