Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

metoda canWrite() u File - uvijek true

[es] :: Java :: metoda canWrite() u File - uvijek true

[ Pregleda: 1317 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

karatas

Član broj: 63060
Poruke: 24
*.adsl.net.t-com.hr.



Profil

icon metoda canWrite() u File - uvijek true22.05.2009. u 19:46 - pre 181 meseci
LP!

Ucitam datoteku u objekt klase File i onda zelim provjeriti da li se u datoteku moze pisati pozovem metodu canWrite() na tom objektu i nema veze sto drzim datoteku otvorenom metoda mi vraca "true"? radim na WinXP OS-u... zanima me koji su principi rada te metode, jer mi je malo nevjerojatno da mi na dateoteku koju drzim otovorenom vraca kao da se moze pisati u datoteku...

Hvala puno!
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
91.148.80.*

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: metoda canWrite() u File - uvijek true23.05.2009. u 02:33 - pre 181 meseci
Pa canwrite proverava samo da li datoteka generalno moze da se modifikuje , tj na windowsima ako imas read only datoteku vratice ti false, ili pod unixima gde imas rwx ako nemas pravo pisanja po datoteci vratice ti false. I to je ono sto metoda treba da vrati

Sa druge strane ako probas da pises po datoteci gde iz nekih objektivnih razloga upis nije moguc dobices IOException. Opet sa druge strane ja ne vidim problem da vise od jednog procesa/thread-a pokusava da pise u isti fajl , za takve stvari postoji i onaj append kod npr FileOutputStream-a.

 
Odgovor na temu

karatas

Član broj: 63060
Poruke: 24
*.adsl.net.t-com.hr.



Profil

icon Re: metoda canWrite() u File - uvijek true23.05.2009. u 16:19 - pre 181 meseci
Citat:
Dejan Lozanovic: Pa canwrite proverava samo da li datoteka generalno moze da se modifikuje , tj na windowsima ako imas read only datoteku vratice ti false, ili pod unixima gde imas rwx ako nemas pravo pisanja po datoteci vratice ti false. I to je ono sto metoda treba da vrati

Sa druge strane ako probas da pises po datoteci gde iz nekih objektivnih razloga upis nije moguc dobices IOException. Opet sa druge strane ja ne vidim problem da vise od jednog procesa/thread-a pokusava da pise u isti fajl , za takve stvari postoji i onaj append kod npr FileOutputStream-a.


koliko sam razumio logiku rada te canWrite metode, je da se sprijeci mogucnost pisanja u datoteku dok je netko drugi azurira. i onda me zbunilo to sto NIKAKO pod windowsima nisam mogao simulirati situaciju da mi metoda vrati false. ova solucija s read only dateotekom mi se cinila nelogicnom...

da li bi mi mogao objasniti ovu metodu append kod npr. FileOutputStream-a. sto ukoliko ja zelim nesto mijenjati na datoteci, sto je vec netko prij emene bas upravo u tom trenutku promijenio. jel java brine o takvim situacijama?

hvala puno!

 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
91.148.80.*

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: metoda canWrite() u File - uvijek true23.05.2009. u 18:36 - pre 181 meseci
Citat:
karatas: koliko sam razumio logiku rada te canWrite metode, je da se sprijeci mogucnost pisanja u datoteku dok je netko drugi azurira. i onda me zbunilo to sto NIKAKO pod windowsima nisam mogao simulirati situaciju da mi metoda vrati false. ova solucija s read only dateotekom mi se cinila nelogicnom...

Heh, mogu samo da kazem da na javu kao jezik dosta uticaja ima unix, mozda si primetio pored canWrite() postoji i canRead() i canExecute(), to je nesto sto svaki unix ima u okviru svog fajl sistema, primera radi na unixu(linux,mac itd.) dovoljno je setovati execute flag na fajlu da bi mogao da ga izvrsis, za razliku od windowsa gde je neophodno da fajl ima extenziju exe. Ako te vise zanima o svemu ovome potrazi ovako
http://www.google.com/search?q=rwx+permissions

Citat:

da li bi mi mogao objasniti ovu metodu append kod npr. FileOutputStream-a. sto ukoliko ja zelim nesto mijenjati na datoteci, sto je vec netko prij emene bas upravo u tom trenutku promijenio. jel java brine o takvim situacijama?

hvala puno!


http://java.sun.com/javase/6/d...Stream(java.io.File,%20boolean)

To zapravo znaci da svaki upis u fajl ce se desiti uvek na kraju fajla ( Operativni sistem vodi racuna o tome) i na taj nacin ako imas dva ili vise programa koji upisuju u isto vreme u dati fajl nece se desiti situacija da ce jedan program upisati svoje podatke preko mesta gde je drugi program vec upisao. Primer za ovako nesto je recimo nekakav log file gde vise programa u isto vreme upisuje u isti log.


 
Odgovor na temu

[es] :: Java :: metoda canWrite() u File - uvijek true

[ Pregleda: 1317 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.