- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要实现的是读取两个文件,随机化每个文件中字符串的顺序,然后将它们添加到一个新的空白文件中。我能够读取文件并随机化它们,但是当将两个文件组合在一起时,我在字符串后收到不需要的输出,例如:NAME1java.io.FileReader@78ef430bCOMPANY2java.io.FileReader@d80ba6ff
(显然我不想要的部分是java.io.FileReader@d80ba6ff部分,@后面的字符总是随机的)
我似乎也只读了每个文件的一行
这是我将文件组合在一起的主要方法
ReadFiles obj = new ReadFiles();
obj.loadCompanies();
obj.loadTitles();
FileReader fCompany=new FileReader("F:\\company2.txt");
FileReader fTitle=new FileReader("F:\\title2.txt");
BufferedReader br1 = new BufferedReader(fCompany);
BufferedReader br2 = new BufferedReader(fTitle);
String tempCompany = null, tempTitle = null;
while(br1.readLine() != null)
{
tempCompany = br1.readLine()+ fCompany;
}
while(br2.readLine()!=null)
{
tempTitle = br2.readLine() + fTitle;
}
String tempFile = tempCompany + ", " + tempTitle;
FileWriter fw = new FileWriter("F:\\companyTitleCombined.txt");
char buffer[] = new char[tempFile.length()];
tempFile.getChars(0,tempFile.length(),buffer,0);
fw.write(buffer);
fCompany.close();
fTitle.close();
fw.close();
也是我的随机文件方法之一
public void loadCompanies(){
String[] strArr = new String[10];
int i = 0;
Scanner readInformation = null;
try {
readInformation = new Scanner(new File("F:\\company.txt"));
PrintStream out = new PrintStream(new FileOutputStream("F:\\company2.txt"));
System.setOut(out);
} catch (Exception e) {
System.out.println("Could not locate the data file!");
}
while(readInformation.hasNext()) {
strArr[i] = readInformation.next();
int rand = (int) Math.floor(strArr.length * Math.random());
System.out.println(strArr[rand]);
i++;
}
readInformation.close();
}
如果您能帮助我摆脱这些不需要的输出,我将不胜感激!
感谢您的宝贵时间。
输出示例:
文件 1:姓名1姓名2名称3
文件 2:公司1公司2公司3
随机文件 1 + 文件 2 = 文件 3 的组合:
名称3,公司2
名称1,公司1
名称2,公司3
最佳答案
您确实读取了所有行,但仅将最后一行存储在变量中。tempCompany = br1.readLine()+ fCompany;
形式的每次赋值都会丢弃 tempCompany
的先前值。另外 + fCompany
部分没有任何意义,它将 FileReader
(即“java.io.FileReader@d80ba6ff”)的字符串表示形式添加到行和您的帖子中你不希望出现这种情况;你应该删除它。
由于您想对所有行执行某些操作,因此您应该将它们存储在列表中。在 String tempCompany = null, tempTitle = null;
之前添加
List<String> companies = new ArrayList<String>();
List<String> titles = new ArrayList<String>();
并将循环更改为:
tempCompany = br1.readLine();
while(tempCompany != null)
{
companies.add(tempCompany);
tempCompany = br1.readLine();
}
tempTitle = br2.readLine();
while(tempTitle != null)
{
titles.add(tempTitle);
tempTitle = br1.readLine();
}
现在您需要打乱两个列表:
Collections.shuffle(companies);
Collections.shuffle(titles);
为了获得所需的输出,您需要确保列表的长度相等。此外,您的输入文件似乎不是按换行符而是按空格分隔的,因此 readLine 可能无法提供您想要的内容。如果是这种情况,则必须使用 String
中的 split
方法,或者转向 StreamTokenizer
之类的方法。
之后您可以编写输出文件。只需连接两个列表中索引相等的字符串即可。
关于java - 在 Java 中读取两个文件并写入一个文件时,FileReader 错误/不需要的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19053194/
第一次在这里发帖。 我正在编写一个 Java 程序,它接受一个输入文本文件,读取内容,然后将它们打印到屏幕上,同时创建一个包含内容的输出文件。我已经设置了必要的编写器,但是当我尝试使用 Buffere
类 FileReader 中的构造函数 FileReader 不能应用于给定类型; import java.io.*; public class FileReader{ publ
任何人都可以帮我修复我的代码,以便我可以编译它。 当我编译它时,会出现一条错误消息“对‘FileReader::FileReader()’的 undefined reference ”。 #ifnde
这是我的程序。我必须从 JFileChooser 选择一个文件,然后对其执行一些操作。问题是,在我选择文件之前,filereader 给出了 nullpointer ,说实话,我什至无法选择,因为当
我无法真正理解 Java 中 FileReader 和 BufferedReader 类的用途。 在 docs.oracle 中,建议将缓冲读取器包装在 FileReader 对象周围,因为直接使用
我正在尝试读取 CSV 或 Excel 文件以将其转换为表格。现在我刚刚创建了一个类来读取输入文件: 输入是: 现在我刚刚创建了一个类来读取输入文件: class InputReader_tiqe
我正在玩弄食物识别 API。 我有一个名为 ingredients 的本地状态组件。 在组件中,我有一个 input 标签,它接受文件图像上传并调用 cameraHandler 方法 onChange
我正在尝试使用此应用脚本将文件上传到 Google 云端硬盘,它适用于较小的文件,但在上传大于约 1 GB 的文件时失败 + 一旦加载大文件,onerror 函数就会执行。我无法弄清楚如何在切片中读取
我的代码 - $selectFile = $(''); $selectFile.click(function () { this.value = null; });
我有一个 FileReader,可以让用户将文件(图像)上传到我的网站。 这是执行读取的代码: $("input[type='file']").change(function(e) { var
我知道异步方法应该是非阻塞的。但我通常看到它们应用于诸如 fetch() 之类的外部操作。 即:在浏览器外部处理的内容。 但是 FileReader() API 又如何呢?文件处理是由浏览器完成的,对
我有(可能)很容易解决的问题,但我自己无法解决。基本上我的reader.width和reader.height一直说未定义:/..其他一切都按预期工作 function handleFileSelec
我想像asp.net一样获取图像文件流并将它们传递到后台,但是每次我尝试触发onload事件时,它总是在编程通过后完成。 我尝试使用setTimeout来阻止它并让它处理并等待它成功,但它失败了。下面
我有两个类。首先是 TEXT 类:这里我读取了一个 6 行的文本文件。我只想逐行阅读,但这可行。但我想从第三行开始,并跳过最后一行,我只希望以 这是文本文件代码。 这是文件读取器的代码:
我仍在学习过程中,如果我有误解,请纠正我,但 FileReader 对象不应该返回文本文件的全部内容吗? 我这里有一段代码,我简单地尝试获取一个短.txt文件的内容,并使用system.out.pri
我收到错误“未处理的异常:java.io.FileNotFoundException,虽然我确定文件路径,但需要一些帮助 public static void main(String[] args)
我有一个我看不到的简单问题,希望另一双眼睛可以帮助我解决。除了我认为的文件阅读器之外,一切都运行良好。我应该让用户输入将其放入文件中,读取该文件并执行正确的操作。但由于某种原因,它只对用户输入的最后一
我尝试使用java.io.FileReader读取一些文本文件并将它们转换为字符串,但我发现结果编码错误并且根本不可读。 这是我的环境: Windows 2003,操作系统编码:CP1252 Java
在java中使用FileReader方法,使文件只读还是仍然需要声明 FileReader file = new FileReader(args[0]); BufferedReader buff
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭10 年前。 Improve th
我是一名优秀的程序员,十分优秀!