Прочитать код программы и в каждом слове, короче 5-ти символов заменить все символы на звездочки. Путь к программе и название нового файла вписываются в командной строке.
Не знаю, как это реaлизовать, кое-как написал, но в файл выводится только первое слово программы.
package q;
import java.lang.StringBuffer;
import java.util.Scanner;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.File;
public class Oleg {
public static void main(String[]args) throws IOException{
//проверка на кол-во введенных данных
if(args.length!=2){
System.out.println("Enter the command-line arguments");
System.exit(1);
}
//проверка существования исходного файла
File sourseFile = new File(args[0]);
if(!sourseFile.exists()){
System.out.println("Source file"+args[0]+"does not exist");
System.exit(2);
}
//проверка существования целевога файла
File targetFile = new File(args[1]);
if(targetFile.exists())
System.out.println("Target file "+args[1]+" already exists");
//создаем Scanner для ввода и PrintWriter для вывода
Scanner input = new Scanner(sourseFile);
PrintWriter output = new PrintWriter(targetFile);
int k=0;
while(input.hasNext()){
String s = new String(input.next());
StringBuffer s1 = new StringBuffer("");
if(s.length()<5) {
for(int i=0;i<s.length();i++)
k++;
while(k<s.length()){
s1.append("*");
}
s.replace(s, s1);
}
output.print(s);
output.close();
}
}
}
Вы закрываете файл в который выводите output.close();
эту строчку нужно писать после прохождения всего цикла.
А вот и код вам поправил.
public static void main(String [] args) throws IOException {
if(args.length!=2){
System.out.println("Enter the command-line arguments");
System.exit(1);
}
File sourseFile = new File(args[0]);
if(!sourseFile.exists()){
System.out.println("Source file "+args[0]+" does not exist");
System.exit(2);
}
File targetFile = new File(args[1]);
if(targetFile.exists())
System.out.println("Target file "+args[1]+" already exists");
Scanner input = new Scanner(sourseFile);
PrintWriter output = new PrintWriter(targetFile);
int k=0;
while(input.hasNext()){
String s = new String(input.next());
StringBuffer s1 = new StringBuffer();
int sz = s.length();
if(sz<5) {
for(int i=0;i<sz;i++) s1.append("*");
s1.append('\n');
output.print(s1.toString());
} else output.print(s+'\n');
}
output.close();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
ЗдравствуйтеУ меня не запускается следующее активити
Пытаюсь настроить непрерывный обмен пакетами между клиентом и сервером
Не получается подключить библиотеку jsoupПоиск в интернете особо не помог, проблема осталась
Можно ли проверить через Hibernate грамматику конкретного SQL диалекта (Postgres, MySQL, Oracle и тд