2011-11-30 141 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