Накратко: Искам да прехвърлям масив от байтове или String във File обект, така че да мога да използвам този File обект като параметър за метод, чийто подпис не мога промяна. Искам да постигна това в паметта, без изобщо да докосвам устройство.
Прочетох много подобни въпроси тук, включително предложения за използване на File. createTempFile, но имам впечатлението, че все още създаваме физически файлове, дори и да е само временно?
Изцяло: Помагам с много сложен проект за възстановяване на данни. Сега имаме, да кажем, дисково изображение от над 400GB, което е колекция от 2MB-секции. Някои от файловете, които искам да възстановя, започват в един и завършват в друг 2MB раздел. Имаме опис на това къде сме виждали начало и край, така че сега искам да свържа заедно начало и край и след това да проверя дали резултатът е валиден файл в някакъв собствен формат. (това е цялата основна информация, нека не навлизаме в това!)
Имам Java клас (който не мога да променя), който може да чете и следователно да проверява тези файлове. Така че искам просто да заредя моя сборен файл в този метод. Ако е успешно, преминавам към следващата "начална част", в противен случай се опитвам да съпоставя началната част с различна крайна част.
Искам да запазя „сглобените файлове“ в паметта (да не ги записвам във временни файлове), защото вероятно е ясно, че имам нужда от висока ефективност. Това е крайна мярка; наистина трябва да съпоставим много хиляди начала с много хиляди краища. Но пак да се придържаме към въпроса :)
java.io.File
представлява само път и име на файл, а не действителното съдържание на самия файл. - person Jesper   schedule 21.11.2014java.io.File
, единственият лесен начин, за който се сещам, е да използвате RAM устройство... - person Jon Skeet   schedule 21.11.2014/tmp
. На много системи това е подкрепено от ram. - person chiastic-security   schedule 21.11.2014