2011-11-30 131 views
3

我不知道Go的語法。任何人都可以幫助我在谷歌的go語言中轉換下面的java代碼。從Java到代碼轉換

import java.io.*; 

class FileWrite 
{ 
    public static void main(String args[]) 
    { 
    try { 
     // Create file 
     FileWriter fstream = new FileWriter("out.txt"); 
     BufferedWriter out = new BufferedWriter(fstream); 
     out.write("Hello Java"); 
     // Close the output stream 
     out.close(); 
    } catch (Exception e){ //Catch exception if any 
     System.err.println("Error: " + e.getMessage()); 
    } 
    } 
} 

該java代碼創建一個名爲out.txt的文件,並在該文件上寫入一個字符串(Hello Java)。

+0

你有什麼這麼遠嗎?您所使用的語法有沒有特別的困難? – Hannele

+0

我不理解,如何創建文件以及如何寫入文件。對不起我的英語不好。 – alessandro

回答

3

但是,這個問題怎麼解決? play.golang.org/p/169zmQvK7m - 亞歷山德羅

例如,

package main 

import (
    "fmt" 
    "os" 
    "strconv" 
) 

func routine(fd *os.File) { 
    abc := 1 
    fd.WriteString("Hello Go " + strconv.Itoa(abc) + " ok\n") 
    fd.WriteString("\nHello Gopher!\n") 
} 

func main() { 
    fd, err := os.Create("out.txt") 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 
    defer fd.Close() 
    abc := 1 
    fd.WriteString("Hello Go " + strconv.Itoa(abc) + " ok\n") 
    fd.WriteString("\nHello Gopher!\n") 
    routine(fd) 
} 
3
package main 

import (
    "fmt" 
    "os" 
) 

func main() { 
    fd, err := os.Create("out.txt") 
    if err != nil { 
     fmt.Println(os.Stderr, err) 
     return 
    } 
    // defer calls a function at the end of the current function.   
    defer fd.Close() 

    fd.WriteString("Hello Gopher!\n") 
} 

我希望這有助於。如果不清楚,請說明哪一部分需要說明。

+0

這很好。我添加abc:= 1(整數聲明)和fd.WriteString(「Hello Gopher!」,abc「ok \ n」)。 Go不能和string一起打印int嗎?它怎麼可能? – alessandro

+0

爲什麼wtr.WriteString(「Hello Gopher!\ n」)將它帶到新行? – alessandro

3

例如,

package main 

import (
    "bufio" 
    "fmt" 
    "os" 
    "strconv" 
) 

func main() { 
    f, err := os.Create("out.txt") 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 
    defer f.Close() 
    wtr := bufio.NewWriter(f) 
    abc := 1 
    _, err = wtr.WriteString("Hello Go " + strconv.Itoa(abc) + " ok\n") 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 
    err = wtr.Flush() 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 
} 

file out.txt: 
Hello Go 1 ok\n 

String literals

字符串文字表示一個字符串常量從 獲得串聯的字符序列。有兩種形式:原始 字符串文字和解釋的字符串文字。

原始字符串文字是後引號``之間的字符序列。 在引號內,除反引號外,任何字符都是合法的。原始字符串文字的值 是由引號之間未解釋的 字符組成的字符串;特別是反斜槓沒有 特殊含義,並且該字符串可能跨越多行。

解釋的字符串文字是雙「 」引號「」之間的字符序列。引號之間的文本(可能不包含多個 行)形成文字的值,反斜槓轉義 被解釋爲它們是字符文字(除非\'是 非法且\「是合法的) (\ nnn)和兩位數 十六進制(\ xnn)轉義字符表示得到的 字符串的單個字節;所有其他轉義字符表示單個字符的編碼(可能是多字節)。 \ xFF表示值0xFF = 255的單個字節,而ÿ,\ u00FF, \ U000000FF和\ xc3 \ xbf表示UTF-8編碼字符U + 00FF的UTF-8 的兩個字節0xc3 0xbf。

+3

你的「翻譯」更準確,我的是一個自由形式! – Mostafa

+0

這很好。我添加abc:= 1(整數聲明)和wtr.WriteString(「Hello Go」,abc,「ok \ n」)。 Go不能和string一起打印int嗎?它怎麼可能? – alessandro

+0

請參閱修訂後的代碼。 – peterSO