首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能解释一下为什么这段代码不把数字放在我的txt文件中吗?

有人能解释一下为什么这段代码不把数字放在我的txt文件中吗?
EN

Stack Overflow用户
提问于 2017-08-11 10:24:22
回答 4查看 64关注 0票数 1

我希望这个程序在我的txt文件中写入数字,但是它不会写一些奇怪的signs.Does,任何人都可以修复它,并使它从数组中写入数字。

代码语言:javascript
复制
package int1;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import java.nio.channels.FileChannel;

public class broj_u_skl {
public static void main(String[] args) {
    File a = new File("C:\\Users\\Jovan\\Desktop");
    File b = new File(a,"Pisem.txt");
    try {
    b.createNewFile();
}catch(Exception e) {

}
    FileOutputStream st = null;
    try {
        st = new FileOutputStream(b);
    }catch(Exception e) {

    }

这是一个数组:

代码语言:javascript
复制
    int[] c = {1,2,3,4,5,6,7,8,9};

但是上面没有写这个数字。

代码语言:javascript
复制
    ByteBuffer bff = ByteBuffer.allocate(100);
    FileChannel ch = st.getChannel();
    IntBuffer ib = bff.asIntBuffer();
    for (int i = 0; i < c.length; i++) {
        ib.put(c[i]);

    }
    bff.position(4*ib.position());
    bff.flip();
    try {
        ch.write(bff);
    }catch(IOException e) {

    }






   }
   }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-08-11 10:34:10

您可以在finally子句中结束st。

代码语言:javascript
复制
FileOutputStream st = null;
try {
    st = new FileOutputStream(b);
    ...
} catch(Exception e) {
    ...
} finally {
    st.close();
}

或者一个更好的解决方案是使用一个尝试资源子句,它将为您关闭st。

代码语言:javascript
复制
try (FileOutputStream st = new FileOutputStream(b)) {
   ...
} catch(Exception e) {
   ...
}
票数 1
EN

Stack Overflow用户

发布于 2017-08-11 10:28:21

添加以下代码

代码语言:javascript
复制
finally{
 st.close();
 }
票数 0
EN

Stack Overflow用户

发布于 2017-08-11 10:39:12

这样做的目的是将整数作为字节写入文件,而不是作为ascii字符串。

看看how to write an array to a file Java上的示例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45632878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档