java printwriter写文件_PrintWriter不写入Java文件

我一直在尝试将我的代码打印到记事本上已有几个小时.基本上,我创建了一个文件,并在其中放置了10个随机整数.然后,我创建另一个文件,该文件将第一个文件中的10个随机整数乘以10.我尝试了刷新,打开关闭等.我假设代码中有问题.谢谢!

import java.io.File;

import java.util.Random;

import java.io.PrintWriter;

public class UghFiles {

public static void main(String[] args) throws Exception{

// TODO Auto-generated method stub

Random rand = new Random();

int x = 0;

File file = new File("LearnProgram.txt");

if(file.exists()) {

System.out.println("File alrady exists");

System.exit(0);

}

else {

PrintWriter output = new PrintWriter(file);

for(int i= 0; i<10; i++){

x = 0 + rand.nextInt(99-0)+1;

output.print(x);

//System.out.print(x + " ");

//System.out.print("");

}

output.close();

}

File f2 = new File("Multiply.txt");

if(f2.exists()) {

System.out.println("File already exists");

System.exit(0);

}

else {

java.util.Scanner input = new java.util.Scanner(file);

PrintWriter output = new PrintWriter(file);

while(input.hasNext()) {

x = x*10;

output.println("" + x);

System.out.print(x);

}

output.close();

input.close();

}

}

}

最佳答案

这里有一些错误.

首先,您几乎可以肯定希望数字出现在不同的行上,而不是串联在一起:

for(int i= 0; i<10; i++){

x = 0 + rand.nextInt(99-0)+1;

output.print(x);

//System.out.print(x + " ");

//System.out.print("");

}

…因此第三行应读取output.println(x);.

其次(也是最大的):

java.util.Scanner input = new java.util.Scanner(file);

PrintWriter output = new PrintWriter(file);

您将忽略刚刚创建的f2,几乎可以肯定要写入. (因此,第二个参数应该为f2.)这就是为什么文件为空的原因-实际上,在上面的代码中将其正确地写入了您的代码中,此步骤只是被空数据覆盖!

第三:

while(input.hasNext()) {

x = x*10;

您只是一次又一次地乘以相同的数字,而不是实际从扫描仪中读取.您几乎可以肯定要说x = input.nextInt()* 10;代替.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值