Как “кошке” файл в JGit?

Как насчет файлов Свойств в Вашем выборе кодировки? Используемый, чтобы быть при загрузке Свойств Вы обеспечили InputStream и load(), метод декодировал его как ISO-8859-1. Вы могли на самом деле хранить файл в некотором другом кодировании, но необходимо было использовать отвратительный взлом как это после загрузки для надлежащего декодирования данных:

String realProp = new String(prop.getBytes("ISO-8859-1"), "UTF-8");

, Но, с JDK 1.6, существует load() метод, который берет Читателя вместо InputStream, что означает, что можно использовать корректное кодирование с начала (существует также store() метод, который берет Писателя). Это походит на довольно грандиозное предприятие мне, но это, кажется, было, крался в JDK без шумихи вообще. Я только наткнулся на него несколько недель назад, и быстрый поиск Google, поднятый всего одно передающее упоминание о нем.

27
задан Community 23 May 2017 в 12:17
поделиться

2 ответа

Figured it out by myself. The API is quite low-level, but it's not too bad:

File repoDir = new File("test-git/.git");
// open the repository
Repository repo = new Repository(repoDir);
// find the HEAD
Commit head = repo.mapCommit(Constants.HEAD);
// retrieve the tree in HEAD
Tree tree = head.getTree();
// find a file (as a TreeEntry, which contains the blob object id)
TreeEntry entry = tree.findBlobMember("b/test.txt");
// use the blob id to read the file's data
byte[] data = repo.openBlob(entry.getId()).getBytes();
5
ответ дан 28 November 2019 в 04:50
поделиться

Есть информация в JGit Tutorial (но он также не является ни действительно полезным, ни полным и, вероятно, устаревшим, поскольку они перешли на eclipse , где еще нет документации).

3
ответ дан 28 November 2019 в 04:50
поделиться
Другие вопросы по тегам:

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