感谢所有人提前。
我通过文本文件输入字符串行,并希望将输出修改为删除每个字符串的最后两个字母。这是文本文件当前读取的内容:
你好,你好吗? 酷
我很棒
这是我正在使用的代码(来自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();
}
}
}
代码完美无缺,但我想修改输出以删除每个字符串的最后两个字母(字符串=每行一个)谢谢大家!
答案 0 :(得分:1)
这是我的建议。不要将流用于非常简单和非负载密集的事情。坚持基础知识,使用Scanner
并逐行阅读您的文件。
这是成功的方法!
了解如何使用Scanner
逐行阅读文本文件中的Strings
。
请务必相应地使用Strings
方法拆分str.split()
。
将每行String
值存储到数组/列表/表格中。
修改已存储的Strings
以删除最后两个字母。查看str.subString(s,f)
方法。
了解如何使用PrintWriter
将修改后的Strings
输出到文件中。
评论回复
从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
}