从Java到Go的代码转换

我不知道Go的语法。 有人可以帮我用Google的go语言转换以下Java代码。</ p>

  import java.io。*; 

class FileWrite
{
public static void main( 字符串args [])
{
try {
//创建文件
FileWriter fstream = new FileWriter(“ out.txt”);
BufferedWriter out = new BufferedWriter(fstream);
out.write( “ Hello Java”);
//关闭输出流
out.close();
} catch(Exception e){//捕获异常,如果有
System.err.println(“ Error:” + e.getMessage());
}
}
}
</ code> </ pre>

此Java代码创建一个名为out.txt的文件并编写一个字符串(Hello Java )。</ p>
</ div>

展开原文

原文

I don't know syntax of Go. Can anybody help me to convert following java code in google's go language .

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());
    }
  }
}

This java code creates a file named out.txt and write a string (Hello Java) on the file.

duanbin4847
duanbin4847 我不了解如何在go中创建文件以及如何在其上编写文件。对不起我的英语不好。
接近 9 年之前 回复
dongyue1988
dongyue1988 到目前为止你得到了什么?您使用的语法有特别困难吗?
接近 9 年之前 回复

3个回答




但是,如何解决此问题? play.golang.org/p/169zmQvK7m
亚历山德罗</ p>
</ blockquote>

例如,</ p>

 包main 

import(
“ fmt”
“ os”
“ strconv”

func例程(fd * os.File){
abc:= 1
fd.WriteString(“ Hello Go” + strconv.Itoa(abc)+“ ok
”)
fd.WriteString( “
Hello Gopher!
”)
}

func main(){
fd,err:= os.Create(“ out.txt”)
if err!= nil {
fmt.Println (err)
返回
}
延迟fd.Close()
abc:= 1
fd.WriteString(“ Hello Go” + strconv.Itoa(abc)+“ ok
”)
fd .WriteString(“
Hello Gopher!
”)
例程(fd)
}
</ code> </ pre>
</ div>

展开原文

原文

But, how this problem can solved ? play.golang.org/p/169zmQvK7m – alessandro

For example,

package main

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

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

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
")
    fd.WriteString("
Hello Gopher!
")
    routine(fd)
}



例如</ p>

  package main 

import(
“ bufio “
” fmt“
” os“
” strconv“

func main(){
f,err:= os.Create(” out.txt“)
如果err!= nil {
fmt.Println(err)
return
}
延迟f.Close()
wtr:= bufio.NewWriter(f)
abc:= 1
_,err = wtr.WriteString( “ Hello Go” + strconv.Itoa(abc)+“ ok
”)
if err!= nil {
fmt.Println(err)
return
}
err = wtr.Flush()\ n如果err!= nil {
fmt.Println(err)
返回
}
}

文件out.txt:
您好1好的

</ code> </ pre> \ n


字符串文字 </ p>

字符串文字表示从
​​连接一系列字符获得的字符串常量。 有两种形式:raw
字符串文字和解释的字符串文字。</ p>

原始字符串文字是反引号``。
之​​间的字符序列。在引号内,除反引号外的任何字符都是合法的 引用。 原始字符串文字的值
是由引号之间未解释的
字符组成的字符串; 特别是反斜杠没有特殊含义,并且字符串可能跨越多行。</ p>

解释的字符串文字是双引号“”之间的字符序列。 引号之间的文本(不能跨多行)形成文字的值,并使用反斜杠转义符
解释为字符文字(除非\'是非法的,而\“是合法的)。 三位八进制(
nn)和两位
十六进制(\ xnn)转义符表示结果
字符串的各个字节;所有其他转义符表示单个字符的(可能是多字节)UTF-8
编码 因此,在字符串文字\ 377
和\ xFF内表示单个字节,值0xFF = 255,而ÿ,\ u00FF,
\ U000000FF和\ xc3 \ xbf表示UTF-8的两个字节0xc3 0xbf

字符U + 00FF的编码。</ p>
</ blockquote>
</ div>

展开原文

原文

For example,

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
")
    if err != nil {
        fmt.Println(err)
        return
    }
    err = wtr.Flush()
    if err != nil {
        fmt.Println(err)
        return
    }
}

file out.txt:
Hello Go 1 ok

String literals

A string literal represents a string constant obtained from concatenating a sequence of characters. There are two forms: raw string literals and interpreted string literals.

Raw string literals are character sequences between back quotes ``. Within the quotes, any character is legal except back quote. The value of a raw string literal is the string composed of the uninterpreted characters between the quotes; in particular, backslashes have no special meaning and the string may span multiple lines.

Interpreted string literals are character sequences between double quotes "". The text between the quotes, which may not span multiple lines, forms the value of the literal, with backslash escapes interpreted as they are in character literals (except that \' is illegal and \" is legal). The three-digit octal ( nn) and two-digit hexadecimal (\xnn) escapes represent individual bytes of the resulting string; all other escapes represent the (possibly multi-byte) UTF-8 encoding of individual characters. Thus inside a string literal \377 and \xFF represent a single byte of value 0xFF=255, while ÿ, \u00FF, \U000000FF and \xc3\xbf represent the two bytes 0xc3 0xbf of the UTF-8 encoding of character U+00FF.

duangan6731
duangan6731 但是,这个问题如何解决?play.golang.org/p/169zmQvK7m
接近 9 年之前 回复
doujiang1993
doujiang1993 “ Hello Go ”是解释的字符串文字,因此“ ”被解释为换行符。
接近 9 年之前 回复
douping3427
douping3427 好。 尼斯。 谢谢。 现在可以使用了。
接近 9 年之前 回复
dongye9820
dongye9820 为什么wtr.WriteString(“ Hello Go ”)将其带到新行?
接近 9 年之前 回复
dongqu1783
dongqu1783 请参阅修改后的代码。
接近 9 年之前 回复
douxi4114
douxi4114 很好 我添加abc:= 1(整数声明)和wtr.WriteString(“ Hello Go”,abc,“ ok ”)。 Go不能与字符串一起打印int吗? 怎么可能呢?
接近 9 年之前 回复
dongshen6060
dongshen6060 您的“翻译”更准确,我的是自由格式的!
接近 9 年之前 回复



  package main 

import(
“ fmt”
“ os”

func main (){
fd,err:= os.Create(“ out.txt”)
if err!= nil {
fmt.Println(os.Stderr,err)
return
}
// defer在当前函数的末尾调用一个函数。

延迟fd.Close()

fd.WriteString(“ Hello Gopher!
”)
}
</ code> </ pre>

我希望这会有所帮助。 如果不清楚,请指定需要解释的部分。</ p>
</ div>

展开原文

原文

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!
")
}

I hope this helps. If this is not clear, please specify which part needs explanation.

duan41497
duan41497 为什么wtr.WriteString(“ Hello Gopher! ”)将其带到新行?
接近 9 年之前 回复
douzheng1853
douzheng1853 很好 我添加abc:= 1(整数声明)和fd.WriteString(“ Hello Gopher!”,abc“ ok ”)。 Go不能与字符串一起打印int吗? 怎么可能呢?
接近 9 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问