task32.task3210 или очередная бяка валидатора.
Уже невозможно просто бороться с валидатором, но может я всё-таки где-то не прав?
Условие:
Используем RandomAccessFile
В метод main приходят три параметра:
1) fileName — путь к файлу;
2) number — число, позиция в файле;
3) text — текст.
Считать текст с файла начиная с позиции number, длинной такой же как и длинна переданного текста в третьем параметре.
Если считанный текст такой же как и text, то записать в конец файла строку ‘true‘, иначе записать ‘false‘.
Используй RandomAccessFile и его методы seek(long pos), read(byte b[], int off, int len), write(byte b[]).
Используй convertByteToString(byte readBytes[]) для конвертации считанной строчки в текст.
Вот мой код:
Условие:
Используем RandomAccessFile
В метод main приходят три параметра:
1) fileName — путь к файлу;
2) number — число, позиция в файле;
3) text — текст.
Считать текст с файла начиная с позиции number, длинной такой же как и длинна переданного текста в третьем параметре.
Если считанный текст такой же как и text, то записать в конец файла строку ‘true‘, иначе записать ‘false‘.
Используй RandomAccessFile и его методы seek(long pos), read(byte b[], int off, int len), write(byte b[]).
Используй convertByteToString(byte readBytes[]) для конвертации считанной строчки в текст.
Вот мой код:
public class Solution {
public static void main(String... args) throws IOException {
RandomAccessFile file=new RandomAccessFile(args[0],"rw");
int n=Integer.parseInt(args[1]);
file.seek(n);
String text=args[2];
byte[] fileText=new byte[(int)file.length()];
file.read(fileText,0,text.length());
file.seek(file.length());
String shoudBeWritten="";
if(convertByteToString(fileText).equals(text))shoudBeWritten="true";
else if(!convertByteToString(fileText).equals(text))shoudBeWritten="false";
file.writeChars(shoudBeWritten);
file.close();
}
private static String convertByteToString(byte readBytes[]){
return String.valueOf(readBytes);
}
}