Ну что, джаваебы, соснули? / geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор) :: anon

anon geek 
Ну что, джаваебы, соснули?

HOWTO Java
COPY FILE
C#
public void copy(File src, File dst) throws IOException { FilelnputStream inStream = new FilelnputStream(src); FileOutputStream outStream = new FileOutputStream(dst); FileChannel inChannel = inStream.getChannel(); FileChannel outChannel = outStream.getChannel();

(Надеюсь, что у вас бомбанет, и вы попытаетесь доказать, что в джаве есть нормальный способ копирования файлов)

Подробнее
HOWTO Java COPY FILE C# public void copy(File src, File dst) throws IOException { FilelnputStream inStream = new FilelnputStream(src); FileOutputStream outStream = new FileOutputStream(dst); FileChannel inChannel = inStream.getChannel(); FileChannel outChannel = outStream.getChannel(); inChannel.transferTo(0, inChannel.size(), outChannel); inStream.close(); outStream.close(); ^ He совместимо с InputStream. Например, нельзя использовать с Anroid AssetManager private static void copyFile(InputStream in, OutputStream out) throw byte[] buffer = new byte[1924]; int read; while((read = in.read(buffer)) != -1){ out.write(buffer, 9, read); } } Фиксированный размер буфера InputStream in; OutputStream out; IOUtils.copy(in,out); Требуется org.apache.commons.io.lOUtils using System.10; ¡File.Copy(sourcePath, destinationPath); Нет проблем: Всегда можно получить путь к файлам Files.copy(InputStream in, Path target) Files.copy(Path source, OutputStream out) Java 7 и выше ByteStreams.copy(inputStream, OutputStream); Требуется Guava library import org.apache.commons.net.io.Util; • • • Util.copyStream(in, out); Требуется org.apache.commons.net.io.Util Даааа, Java лучше, чем C#
anon,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Развернуть
В чём проблема с фиксированным размером буфера?
anon anon 06.08.201413:55 ответить ссылка 0.4
в чём проблема с Java 7 и выше, пример на шарпе вообще требует .NET Framework 4.5
anon anon 06.08.201413:56 ответить ссылка 0.8
Да что ви говорите?
File.Copy доступен по крайней мере с framework 2.0, нет возможности проверить с более ранним.
anon anon 06.08.201414:02 ответить ссылка 0.0
давай пруфы
anon anon 06.08.201414:07 ответить ссылка -0.1
Официальная документация за пруф годиться?
File.Copy Method (String, String)
.NET Framework 2.0
Other Versions ▼
Copies an existing file to a new file. Overwriting a file of the same name is not allowed.
Namespace: System.IO Assembly: mscorlib (in mscorlib.dll)
* Syntax
c#	C+ +	VB	
public static void Copy (			
	string
anon anon 06.08.201414:11 ответить ссылка 1.1
Лень собрать в студии тестовый проект с framework 2.0?
anon anon 06.08.201414:25 ответить ссылка 0.1
я же джаваёб, откуда у меня студия?
anon anon 06.08.201414:29 ответить ссылка 0.2
Поддержка Java 7 включена только в Android 4.4, остальные версии соснут, что не есть хорошо.
Пример на шарпе требует .NET Fraemwork 2.0 и выше (может и ниже, но в 2.0 я видел это)
anon anon 06.08.201414:03 ответить ссылка 0.0
А шарп в андроид вообще не включён и не будет, и не надо тут рассказывать про моно и прочие перверции
anon anon 06.08.201414:09 ответить ссылка 0.1
Я и не где не говорил про Шарп на Дройд. Если б был нормальный шапр на андройд, я б не трахался с это клiтой джавой.
anon anon 06.08.201414:12 ответить ссылка 0.0
технологии не виноваты в том что у тебя руки из жопы
anon anon 06.08.201414:20 ответить ссылка 0.0
Xamarin Studio в помощь.
anon anon 07.08.201420:59 ответить ссылка 0.0
В том, если копируемый файл окажется больше, чем выделенный буфер, будет жопа. Упомянутй InputStream, который возвращает AssetManager.Open не позволяет узнать размер файла (ну, на то он и Stream). Таким образом, надо брать размер буфера заведомо выше максимального файла, который надо копировать. Это не труЪ, т.к
1) для мелких файлов в пустую выделяется лишняя память
2) всегда есть шанс, что какой-то файл окажется больше
anon anon 06.08.201414:05 ответить ссылка -0.3
ты с ума сошел? ты где видел, чтобы буфер для копирования брался больше размера файла? что за ересь?
anon anon 06.08.201414:10 ответить ссылка 0.3
не трогай его, он походу индус
anon anon 06.08.201414:11 ответить ссылка 0.3
Я сам знаю, что это ересь. Я облазил дохрена тем на StackOverfollow, и в 90% из них, где просят "android\java copy file" предлагают такой способ. Остальные способы с их недостатками так же перечислены.

Если Вы предложите способ, как правильно, не по-индусски копировать файлы в Java (притом в Java 6 и без сторонних либ), я буду премного благодарен. Или предложите, как вытащить channel из InputStream - тот же StackOverfollow не дал мне ответа.
anon anon 06.08.201414:19 ответить ссылка 0.0
вот поколение пошло, не могут даже файл скопировать без StackOverfollow, с буферами нормальный пример, пользуйся и не еби никому мозг
anon anon 06.08.201414:33 ответить ссылка 0.1
Не работал я с джавой, вот и ищу любую инфу, какую гугль подаст - и стаковерфоллов, и оракл доки и проч.
anon anon 06.08.201414:38 ответить ссылка 0.0
т.е. цикл в примере тебя не смущает?
anon anon 06.08.201414:11 ответить ссылка 0.1
И цикл смущает, и чтение файла в память, чтоб копировать, смущает, все смущает
anon anon 06.08.201414:21 ответить ссылка -0.2
ух ты, а файл можно скопировать без чтения его в память? ну-ка ну-ка, с этого места поподробней
anon anon 06.08.201414:30 ответить ссылка 0.0
Большие файлы можно копировать без чтения их в память целиком, а только кусками.
anon anon 06.08.201414:37 ответить ссылка 0.0
ну так и читай его кусками, вон у тебя в примере килобайтный буфер
anon anon 06.08.201414:43 ответить ссылка 0.1
Читать кусок в буфер, писать из буфера, повторить, пока поток не кончился. Not bad. Вполне решение. Там, где нет привязки к InputStream можно юзать первый пример. Юзать можно, но это не отменяет, что в шарпе все проще и вараинт единственный (если не городить свой костыль) и универасльный.
anon anon 06.08.201414:49 ответить ссылка 0.0
скопипастить пример метода и спользовать, пиздец как сложно, и о какйо привязке к InputStream ты бормочешь?
anon anon 06.08.201414:57 ответить ссылка 0.0
Я бормочу о том, что есть класс AssetManager, который в дройде нужен для работы с assets (типо ресурсами в апк). У него есть метод open, открывающий нужный файл, и он возвращает InputStream. Иначе получить файл из ассетс вроде нельзя, потому что они там "типо заархивированы"
anon anon 06.08.201415:04 ответить ссылка 0.0
любой файл читайется как InputSteam (та или иная реализация) если ты не умеешь с ними работать то самое время научиться, потому как без этого никуда
anon anon 06.08.201415:09 ответить ссылка 0.0
1) man 2 splice. Данные в userspace не попадут, так даже "безопаснее".

2) В системе команд SCSI есть COPY. Выполняя её, диск должен сам скопировать данные из одного набора секторов в другой. В этом случае данные вообще до ОЗУ не доберутся. Вот только хз, могут диски эту команду обрабатывать или нет.
anon anon 08.08.201401:27 ответить ссылка 0.0
нихуя себе, языкосрачи, а вброс кстати тупой и унылый
anon anon 06.08.201413:55 ответить ссылка 0.4
Ява может p/invoke?
anon anon 06.08.201413:56 ответить ссылка 0.0
нет, так же как шарп не может в JNI, что ты хотел этим сказать?
anon anon 06.08.201414:05 ответить ссылка 0.1
А то, что у любой оси есть функции копирования файлов, достаточно к ним обратиться.
anon anon 06.08.201414:20 ответить ссылка -0.1
да мой друг, но Java и создавалась для того чтобы проги написанные на ней были кроссплатформенными и без костылей вроде проверки оси и вызова соответствующего метода api
anon anon 06.08.201414:28 ответить ссылка 0.2
"Ну что, джаваебы, соснули?"

они соснули и без этого, длЯ них это нормальное перменентное состояние
anon anon 06.08.201414:09 ответить ссылка 0.5
только вот си шарп тоже ниочень
anon anon 06.08.201414:10 ответить ссылка 0.3
КАКОЙ ТО
t Ш
anon anon 06.08.201414:10 ответить ссылка 2.1
контралцэ;
контралвэ.
anon anon 06.08.201414:11 ответить ссылка 1.6
ППц ... скрафти себе библиотеку и пользуйся функциями... будет тебе даже синтаксис как в шарпее...
А вообще толсто дети мои, слишком толсто... сравниваем трактор с паровозом.
anon anon 06.08.201414:15 ответить ссылка 0.5
Крестобогов не волнуют проблемы холопов.
anon anon 06.08.201414:22 ответить ссылка 0.2
Действительно... У меня игра написана на NDK, но для копирование некоторых файлов из Assets в /data/data/... я почему-то решил юзать Java и AssetManager, как написано в андройд доках.
Но ведь можно же копировать через сам NDK! Я слоупок.
Спасибо тебе, добрый человеккрестобог!
anon anon 06.08.201414:27 ответить ссылка 0.0
Пример с циклом вполне годный, к нему еще можно приделать прогресс и вообще будет збс.
anon anon 06.08.201414:24 ответить ссылка 0.3
C# совместим с андроид?
anon anon 06.08.201414:45 ответить ссылка 0.0
нихт ((
anon anon 06.08.201415:52 ответить ссылка 0.2
тоесть проблема только в том что такого метода нету в стандартной комплектации в джава? библиотеку подключить это наверное очень сложно.
anon anon 06.08.201414:49 ответить ссылка 0.0
Подключение лишних либ на дройде может обернуться проблемами совместимости.
anon anon 06.08.201414:51 ответить ссылка 0.0
например
anon anon 06.08.201414:56 ответить ссылка 0.1
Например на разных версиях дроида некоторые ф-ии могут быть недоступны. И если библа их юзает - фейл. Конечно, если библа юзает ф-ии, которые 146% есть в минимальном API Level, на который ты ориентируешь приложение - то ок.
anon anon 06.08.201415:02 ответить ссылка 0.0
А теперь тоже самое, только по-русски. библа их юзает, фейл - это ты так свою крутизну показываешь? а простецкий пример с буфером, который во всех книжках по программированию приводится, использовать не могешь, как же так?
anon anon 06.08.201415:14 ответить ссылка 0.0
Всем спасибо, все свободны. Я осознал свою полнейшую никчемность и непроходимую тупость. Без всякого сарказма. Приношу извинения перед джаваебами джавистами. Я говно.
anon anon 06.08.201415:25 ответить ссылка 1.5
в силу специфики работы, кожу и на object-c, и на плюсах, яве и шарпе (это ужасбля) + работа с бд (SQL).

Скажу по личному опыту, на шарпе удобнее всего.
На плюсах приходиться делать киломитровые бороды того, что на яве\шарпе достигнуть легче, зато можно городить великолепные велосипеды, костыли и хаки =)
Ява... она меня напрягает сотней - другой особенностей (у нее всегда "я не такая, не так, не здесь, не туда"). Зато разработка быстрее плюсов, но медленнее шарпа.
Ну а яблочный си я просто ненавижу за извращенный синтаксис (сиди и считай скобочки блин) и очень неудобное IDE (Эклипс, и тот для меня удобнее оказался, на первом месте, тем не менее, визуалка от мелкомягких)
anon anon 06.08.201416:02 ответить ссылка 0.2
А какие вместо эклипса есть IDE, он мне кажется просто квинтессенцией неюзабельности
anon anon 06.08.201416:10 ответить ссылка 0.0
NetBeans, IDEA ? блокнотом можно =))
честно говоря ничего такого смертельно неудобного не нашел в эклипсе. Он не идеален, но и подсветка есть, и сносное форматирование текста.
anon anon 06.08.201417:34 ответить ссылка 0.0
Жутко загроможденный интерфейс, притом такой удобной фичи, как в студии, автоскрытия окон, нет. Вот и приходится:
кодишь - сузил вывод и логкэт, дерево проектов и пр.
запускаешь - растягиваешь окно вывода
anon anon 06.08.201417:36 ответить ссылка 0.0
А почему не подходят буферезируемые потоки?

BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(new FileInputStream("input.txt")));
}
catch (FileNotFoundException e) {
}
anon anon 06.08.201416:23 ответить ссылка 0.0
Призываю Эскобара!
anon anon 06.08.201417:09 ответить ссылка 0.0
Акспопа Эсковпгп
а
При безальтернативном выборе из двух противоположных сущностей обе будут являть собой исключительную хуйню.
anon anon 06.08.201417:10 ответить ссылка 0.1
Делфи дрочеры подключились к треду?)
anon anon 09.08.201420:09 ответить ссылка 0.1
Как догалался?
anon anon 11.08.201418:35 ответить ссылка 0.0
Учуял :)
anon anon 11.08.201419:50 ответить ссылка 0.0
Рейтинг поста сначала предсказуемо ушел в минус, потом в плюс, а потом в минус. Американские горки.
anon anon 06.08.201417:11 ответить ссылка 0.0
Короче говно ваши жабы и дотнеты, только нативный код!
anon anon 28.08.201408:53 ответить ссылка 0.0
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
One morning you wake up find out you have access to God’s developer console. What’s the first thing you do with this power?
Discussion
♦ 154 +	W 479	& Share
^ BEST COMMENTS ▼
I like forks • 5h
hehe3301 • 7h
sudo rm -rf oceans/*/contents/
*.plástic
sudo rm -rf people/*/*.cáncer sudo rm -rf v
подробнее»

it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор без перевода it humor geek it юмор

One morning you wake up find out you have access to God’s developer console. What’s the first thing you do with this power? Discussion ♦ 154 + W 479 & Share ^ BEST COMMENTS ▼ I like forks • 5h hehe3301 • 7h sudo rm -rf oceans/*/contents/ *.plástic sudo rm -rf people/*/*.cáncer sudo rm -rf v
то: cusTomeR support SUBJeCT: ШУ SecURITY
IS MV PASSWORD SAFe FRom RUSSIAN HACKeRS?
то: cusTomeR SUBJECT: YOUR SECURITY
подробнее»

password anon geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор

то: cusTomeR support SUBJeCT: ШУ SecURITY IS MV PASSWORD SAFe FRom RUSSIAN HACKeRS? то: cusTomeR SUBJECT: YOUR SECURITY