java,编写一个程序,可以读取文件数据

编写一个程序,它在名为“myText”的文本文件中读取。(在Mac上)或“myTextWindows”。txt”(在Windows上)。确定以下几点:文件中单词的数量。一... 编写一个程序,它在名为“myText”的文本文件中读取。
(在Mac上)或“myTextWindows”。
txt”(在Windows上)。
确定以下几点:

文件中单词的数量。
一个单词被定义为被空格包围的文本(例如,使用了“一种划算的方法”,包含5个单词。
文件中的行数。
文件中最长的单词(如果有一条领带,任何最长的单词都可以)。
最长的单词的长度。
平均单词长度。
将这些值输出到名为“mytextdata.txt”的文本文件中。
格式应该类似于下面的内容(下面的数字仅仅是示例):

The file "myTextWindows.txt" was successfully read.

Number of words: 98
Number of lines: 8
Longest word: fantastic!
Longest word length: 10
Average word length: 4.3
展开
 我来答
小龙5213344
2018-05-23 · TA获得超过221个赞
知道小有建树答主
回答量:348
采纳率:42%
帮助的人:61.1万
展开全部
package dome.myword.test;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;

public class Myword {
public static void main(String[] args) throws IOException {
try {
FileInputStream file = new FileInputStream("e:/myText.txt");
BufferedInputStream Bfile = new BufferedInputStream(file);
byte[] b = new byte[1024];
String s = "";
int bytesRead=0;  
while((bytesRead=Bfile.read(b))!=-1){
s+= new String(b,0,bytesRead);
}
System.out.println(s);
 
String[] words = s.split(" ");
int sum = words.length;
int max = words[0].length();       
        String maxWord = "";
        int avgs = 0;
        for (int i = 1; i < words.length; i++) {             
            if(words[i].length()>max) {               
               max = Math.max(max, words[i].length());                
               maxWord = words[i];
            }
            avgs = avgs+words[i].length()+words[0].length();
        }   
        
        String path = "e:/myText.txt" ;
        FileReader fr = new FileReader(path); 
        BufferedReader br = new BufferedReader(fr);
         int x = 0;
         while(br.readLine() != null) { 
         x++; 
         }  
        
        System.out.println("总行数"+x);
        int avg = avgs/sum;
        System.out.println("平均长度:"+avg);
        System.out.println("最长单词:"+maxWord);

System.out.println("单词总数:"+sum);
Bfile.close();

 String fileName = "e:/mytextdata.txt";
 FileOutputStream out = new FileOutputStream(fileName);
  
 String str ="单词总数:"+sum+"\r\n"+ "总行数:"+x+"\r\n"+"最长单词:"+maxWord+"\r\n"+"平均长度:"+avg;
 out.write(str.getBytes());
 out.close();
System.out.println("输出文本完毕");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

有问题再叫我。下面是测试结果

DoramiHe
推荐于2018-05-24 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59541
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
输出流默认就是文件不存在就创建一个为了清楚我直接抛异常了 随机数没有范围和正负之分,不知道你们有没有要求 哪里有问题再问我 public static void main(String[] args) throws Exception{ File f=new File("D://test.txt"); FileWriter fw=new FileWriter(f); Random r=new Random(); int sum=0; for(int i=0;i<100;i++){ int n=r.nextInt(); sum+=n; fw.write(n+" "); } System.out.println("总和:"+sum); fw.close(); }
追问
我补了一下原题,大概就是说创建一个可以读随便txt文件的程序,可以找出被空格隔开的单词有几个,文件中的行数,文件中最长的单词,最长的单词的长度,平均单词长度。
然后按下面那个格式写出来。。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式