我想知道如何使用BufferedWriter从对象(泛型)写入文件。
我尝试了下面的代码,但无法正常工作。
我想打印列表中存在的所有值。我是否需要进行任何类型转换或使用迭代器并使用get方法或for循环。
如果我做错了什么,那么将值写入PrintWriter以外的文件的方法是什么?我尝试使用不同的writer,但对我没有任何帮助。
我不明白前进的道路。
从我的程序中获取错误的输出
public static void file()throws Exception{
FileWriter fw = new FileWriter("file1.txt");
BufferedWriter bw = new BufferedWriter(fw);
for (int i = 0; i < AllList.a.size(); i++) {
JavaBeans b1 = AllList.a.get(i);
bw.write(b1.getProductDescription());
bw.flush();
bw.close()
第二部分:
package com.collections;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class AllList {
public static List<JavaBeans> a = new ArrayList<JavaBeans>();
public static void getAllList() {
JavaBeans j = new JavaBeans();
j.setProductNumber(1);
j.setProductName("car");
j.setProductDescription("for driving");
j.setProductUnits(10);
JavaBeans j1 = new JavaBeans();
j1.setProductNumber(2);
j1.setProductName("soap");
j1.setProductDescription("for bathing");
j1.setProductUnits(20);
JavaBeans j2 = new JavaBeans();
j2.setProductNumber(3);
j2.setProductName("Cell");
j2.setProductDescription("for calling");
j2.setProductUnits(30);
a.add(j);
a.add(j1);
a.add(j2);
Iterator<JavaBeans> it = a.iterator();
while (it.hasNext())
{
JavaBeans bean = it.next();
System.out.print(bean.getProductNumber()+ " \t "+bean.getProductDescription()+"\t"+bean.getProductName()+"\t"+bean.getProductUnits()+"\n");
}
}
public static void add(JavaBeans bean )
{
a.add(bean);
System.out.println("added succesfully");
}
public static void update(JavaBeans bean )
{
for (int i = 0; i < AllList.a.size(); i++) {
JavaBeans b = AllList.a.get(i);
if(b.getProductNumber()==bean.getProductNumber()){
AllList.a.set(i, bean);
}}
}
public static void delete(JavaBeans bean )
{
for (int i = 0; i < AllList.a.size(); i++) {
JavaBeans b = AllList.a.get(i);
if(b.getProductNumber()==bean.getProductNumber()){
AllList.a.remove(i);
System.out.println("deleted succesfully");
}}
}
public static void file()throws Exception{
FileWriter fw = new FileWriter("file1.txt");
BufferedWriter bw = new BufferedWriter(fw);
for (int i = 0; i < AllList.a.size(); i++) {
JavaBeans b1 = AllList.a.get(i);
bw.write(b1.getProductDescription());
bw.flush();
bw.close();
}
}
}
日语课:
package com.collections;
public class JavaBeans {
private int productNumber;
private String productName;
private String productDescription;
private int productUnits;
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((productDescription == null) ? 0 : productDescription.hashCode());
result = prime * result + ((productName == null) ? 0 : productName.hashCode());
result = prime * result + productNumber;
result = prime * result + productUnits;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
JavaBeans other = (JavaBeans) obj;
if (productDescription == null) {
if (other.productDescription != null)
return false;
} else if (!productDescription.equals(other.productDescription))
return false;
if (productName == null) {
if (other.productName != null)
return false;
} else if (!productName.equals(other.productName))
return false;
if (productNumber != other.productNumber)
return false;
if (productUnits != other.productUnits)
return false;
return true;
}
@Override
public String toString() {
return "JavaBeans [productNumber=" + productNumber + ", productName=" + productName + ", productDescription="
+ productDescription + ", productUnits=" + productUnits + "]";
}
public int getProductNumber() {
return productNumber;
}
public String getProductName() {
return productName;
}
public String getProductDescription() {
return productDescription;
}
public int getProductUnits() {
return productUnits;
}
public void setProductNumber(int productNumber) {
this.productNumber = productNumber;
}
public void setProductName(String productName) {
this.productName = productName;
}
public void setProductDescription(String productDescription) {
this.productDescription = productDescription;
}
public void setProductUnits(int productUnits) {
this.productUnits = productUnits;
}
}
参考方案
如果您希望创建可读文本,建议您使用PrintWriter进行编写-这可以控制代码中的换行符。
Java Double与BigDecimal - java我正在查看一些使用双精度变量来存储(360-359.9998779296875)结果为0.0001220703125的代码。 double变量将其存储为-1.220703125E-4。当我使用BigDecimal时,其存储为0.0001220703125。为什么将它双重存储为-1.220703125E-4? 参考方案 我不会在这里提及精度问题,而只会提及数字…
java:继承 - java有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…
Java:BigInteger,如何通过OutputStream编写它 - java我想将BigInteger写入文件。做这个的最好方式是什么。当然,我想从输入流中读取(使用程序,而不是人工)。我必须使用ObjectOutputStream还是有更好的方法?目的是使用尽可能少的字节。谢谢马丁 参考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是将对象序列化为八位字节序列的一种通用方法。但…
Java-如何将此字符串转换为日期? - java我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…
当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…