Читать PDF из общей папки

Каждый раз, когда вы добавляете объект в ArrayList, убедитесь, что вы добавили новый объект, а не уже использованный объект. Случается, что при добавлении одной и той же копии объекта этот объект добавляется в разные позиции в ArrayList. И когда вы вносите изменения в один, поскольку одна и та же копия добавляется снова и снова, все копии становятся затронутыми. Например, предположим, что у вас есть ArrayList:

ArrayList<Card> list = new ArrayList<Card>();
Card c = new Card();

Теперь, если вы добавите эту карту c в список, она не будет добавлена ​​никаких проблем. Он будет сохранен в месте 0. Но когда вы сохраните ту же Карту c в списке, она будет сохранена в местоположении 1. Так что помните, что вы добавили один и тот же 1 объект в два разных местоположения в списке. Теперь, если вы внесете изменения в объект Card c, объекты в списке в местах 0 и 1 также отражают это изменение, потому что они являются одним и тем же объектом.

Одним из решений было бы сделать конструктор класса Card, который принимает другой объект карты. Затем в этом конструкторе вы можете установить такие свойства следующим образом:

public Card(Card c){
this.property1 = c.getProperty1();
this.property2 = c.getProperty2(); 
... //add all the properties that you have in this class Card this way
}

И скажем, что у вас есть одна и та же 1 копия Карты, поэтому во время добавления нового объекта вы можете сделать это:

list.add(new Card(nameOfTheCardObjectThatYouWantADifferentCopyOf));
0
задан Dónal 21 February 2019 в 15:01
поделиться

2 ответа

Насколько я понимаю, вы пытаетесь реализовать «прокси» между пользователем и pdf, создавая новый контроллер Grails.

Поскольку сообщение об ошибке «Нет такого файла или каталога», я подозреваю, что эта ошибка возникла на сервере при попытке сделать File = new File("path") ... так что вы уверены, что на сервере есть подпапка с именем «путь», где приложение grails запущено?

0
ответ дан Jorge Aguilera Gonzalez 21 February 2019 в 15:01
поделиться

Зависимость - введите компонент ResourceLoader и используйте его для доступа к PDF, например,

.
import org.springframework.context.ResourceLoaderAware
import org.springframework.core.io.Resource
import org.springframework.core.io.ResourceLoader

class MyService implements ResourceLoaderAware {

    ResourceLoader resourceLoader

    InputStream getPdfContent() {
        Resource pdf = resourceLoader.getResource("classpath:path/toPdf.p12")
        pdf.inputStream
    }
}
0
ответ дан Dónal 21 February 2019 в 15:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: