import java.util.Scanner;
import java.io.*;
public class Main {
public static String Reader (String path, int offset, int length) {
String string = "";
try {
FileReader reader = new FileReader(path);
char[] buf = new char[length+offset];
reader.read(buf,offset,length);
for (int i=0; i<length+offset; i++) {
string += buf[i];
}
}
catch (IOException exception){
System.out.println(exception.getMessage());
}
return string;
}
public static void main(String[] args) {
System.out.println(Reader("D:/daile.txt",5,10));
}
}
Написал метод, который по-идее должен считывать из текстового файла по расположению (path) определенное количество символов (length), со смещением на (offset) символов. Но смещение не работает. Считывает все символы на длину length. В чем проблема?
offset
работает, но не так, как вы думаете. Этот параметр указывает с какого места сохранять прочитанное в результат, а не с какого места читать path
(описание метода). В выводе результата в самом начале 5 пробелов. Это как раз ваш offset
.
Здесь нужен метод skip(long n):
reader.skip(offset);
reader.read(buf,0,length);
Ну и поскольку считывается length
символов, то и buf
достаточно сделать длиной length
:
char[] buf = new char[length];
И точно так же подкорректировать цикл:
for (int i=0; i<length; i++)
Итого:
try {
FileReader reader = new FileReader(path);
char[] buf = new char[length];
reader.skip(offset);
reader.read(buf,0,length);
for (int i=0; i<length; i++) {
string += buf[i];
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
[Petr, Alexandr, Ivan, Dmitriy] вот что я получил в консольПочему вышли значения таким образом, а не по порядку как в ArrayList например?
Необходимо отследить перемещение одной белой точки на черном фонеИспользую OpenCV и класс CameraPreview на основе SurfaceView
Создаю приложение с ЯндексКартами