2013-02-18 32 views
1

什麼是這個代碼Java相當於我已經把它的一部分,我很感興趣的I/O部分:的Java適當的I/O此代碼爲空值終止字符

int fd = open(FILE_NAME, O_WRONLY); 
int ret = 0; 
if (fd == -1) {   
    exit(EXIT_FAILURE); 
} 
while (1) { 
    ret = write(fd, "\0", 1); 
} 

更新:
的代碼不會複製files.It只有在文件中寫入一個字節/字符(不知道)每X秒

回答

3

這基本上就是你想要的。

try { 
    FileOutputStream os = new FileOutputStream(FILENAME); 
    while(true){ 
    os.write(0); 
    Thread.sleep(2000); // wait 2 seconds before the next write 
    } 
} 
catch(FileNotFoundException e){ 
    System.err.println("watchdog error: " + e.getMessage()) 
    System.exit(1); 
} 

如果你真的想忽略所有的「寫」錯誤,因爲你的C代碼沒有,那麼os.write更改爲:

try { 
    os.write(0); 
} 
catch(Exception we){ 
    //ignoring write exception 
} 
+0

所以'「\ 0」'被替換爲一個整數'0'? – Jim 2013-02-18 14:39:46

+0

你可以使用'\ u0000'作爲空字符 – 2013-02-18 14:45:41

+0

它是一個字符設備。這個改變了什麼嗎? – Jim 2013-02-18 14:56:03

0
Filereader file = new Filereader("filename"); 
BufferedReader reader = new BufferedReader(); 
String line = ""; 

FileWriter fstream = new FileWriter("fName"); 
BufferedWriter fbw = new BufferedWriter(fstream); 

while ((line = reader.readLine()) != null) { 

    fbw.write(line + "\n"); 

} 

你的意思是這樣的(?)(?)?從一個文件讀取並寫入另一個文件。

+0

在OP中的代碼不復制文件 – Jim 2013-02-18 14:33:58

1
public static void main(String[] args) throws IOException, InterruptedException { 
    //open the file (throws exception if failed) 
    FileOutputStream fstream = new FileOutputStream("fName"); 

    while (true) { 
     //write "\0" in the file (throws exception if failed) 
     fstream.write(0); 
     //sleep for 1000ms, throw exception if interrupted 
     Thread.sleep(1000); 
    } 
} 
+1

爲什麼投到'byte'? – Jim 2013-02-18 14:46:31

+0

好點,它是寫(int)。我認爲這是寫(字節) – Javier 2013-02-18 14:50:24

+0

這是一個字符設備。這是否改變了一些東西? – Jim 2013-02-18 14:56:27