在读取文件和写入新文件时替换与特定值不同的字符
Replacing char which is different from specific values during reading file and writing to new file
我需要读取文本文件,替换特定值,例如(a 代表 1,b 代表 2,c 代表 3),如果出现不同的内容,将其交换为 ascii_to_char(char_to_ascii(value)+1))
,然后将其写入另一个文件。我设法找到了如何处理 a、b、c 的解决方案,但我不知道如何处理不同的东西。这是我的代码
public void readAndWriteFromfile() throws IOException {
BufferedReader inputStream = new BufferedReader(new FileReader(testFile));
File newFile = new File(newTestFile);
// if File doesnt exists, then create it
if (!newFile.exists()) {
newFile.createNewFile();
}
FileWriter filewriter = new FileWriter(newFile.getAbsoluteFile());
BufferedWriter outputStream = new BufferedWriter(filewriter);
String line;
while ((line = inputStream.readLine()) != null) {
outputStream.write(line.replaceAll("a", "1")
.replaceAll("b", "2")
.replaceAll("c", "3"));
}
outputStream.flush();
outputStream.close();
inputStream.close();
}
最好实现单独的方法来编码字符,例如,像这样:
private char encode(char c) {
if (c >= 'a' && c <= 'c') {
return (char)('1' + c - 'a');
}
return (char) (c + 1);
}
并为输入文件中的每个字符调用它(换行除外:)):
String line;
while ((line = inputStream.readLine()) != null) {
char[] input = line.toCharArray();
for (int i = 0; i < input.length; i++) {
input[i] = encode(input[i]);
}
outputStream.write(input);
outputStream.append('\n');
}
我需要读取文本文件,替换特定值,例如(a 代表 1,b 代表 2,c 代表 3),如果出现不同的内容,将其交换为 ascii_to_char(char_to_ascii(value)+1))
,然后将其写入另一个文件。我设法找到了如何处理 a、b、c 的解决方案,但我不知道如何处理不同的东西。这是我的代码
public void readAndWriteFromfile() throws IOException {
BufferedReader inputStream = new BufferedReader(new FileReader(testFile));
File newFile = new File(newTestFile);
// if File doesnt exists, then create it
if (!newFile.exists()) {
newFile.createNewFile();
}
FileWriter filewriter = new FileWriter(newFile.getAbsoluteFile());
BufferedWriter outputStream = new BufferedWriter(filewriter);
String line;
while ((line = inputStream.readLine()) != null) {
outputStream.write(line.replaceAll("a", "1")
.replaceAll("b", "2")
.replaceAll("c", "3"));
}
outputStream.flush();
outputStream.close();
inputStream.close();
}
最好实现单独的方法来编码字符,例如,像这样:
private char encode(char c) {
if (c >= 'a' && c <= 'c') {
return (char)('1' + c - 'a');
}
return (char) (c + 1);
}
并为输入文件中的每个字符调用它(换行除外:)):
String line;
while ((line = inputStream.readLine()) != null) {
char[] input = line.toCharArray();
for (int i = 0; i < input.length; i++) {
input[i] = encode(input[i]);
}
outputStream.write(input);
outputStream.append('\n');
}